Qlabel 自定义鼠标点击事件以及文本样式效果设计
来源:互联网 发布:淘宝试用卖家不发货 编辑:程序博客网 时间:2024/06/07 23:57
1、标题、内容以及图片均具有点击的效果;
2、鼠标放置在标题和内容上,文字变色并且高亮显示,无需下划线;
3、鼠标的形状:在放置在标题和内容上时由箭头变成小手指。
整个窗体采用QWidget类型,标题、内容、图片采用QLabel类型。当我实现文本点击时,发现QLabel没有像button那样的clicked信号,网上推荐了如下两种方法:
1、在标题中嵌入html标签:
2、自定义实现QLabel以及clicked 信号,然后通过qss设置QLabel的文本样式以及hover效果:
1)自定义QLabel:
class ActivityLabel : public QLabel
{
public:
protected:
signals:
};
void ActivitiLabel::mouseReleaseEvent(QMouseEvent * ev)
{//定义鼠标左键点击事件
}
并将ui文件中的控件类型设置为自定义的QLabel类型,这样就解决QLabel不支持clicked事件的问题。
2)在qss中设置title的文本样式和hover效果
QLabel#Title{
}
QLabel#Title:hover
{
}
3)定义与clicked信号对应的槽:
void ActivitiForm::onDetailClicked()
{
}
connect(ui.Title,SIGNAL(clicked()),this,SLOT(onDetailClicked()));
4)设置QLabel控件的鼠标形状:
Title->setCursor(QCursor(Qt::PointingHandCursor));
或者通过qt设计师设置:
5)设置自动换行显示:
ui.Content->setText(content);
ui.Content->adjustSize();
注意这两条代码的顺序。
除了换行,我们还需要设置Content框的大小:长的大小固定,宽可以任何调整,具体设置如下:
6)QLabel中中文乱码的处理:
QByteArray content = reply_->readAll(); //读取网络字节流
QTextCodec *codec = QTextCodec::codecForLocale(); //将编码方式设置成本地编码方式
QString contentQStr = codec->toUnicode(content); //使用编码器进行转码
注:当时有将codec强行设置成gbk的编码方式,但程序运行后发现bug,还不知道问题出在哪。
原文地址:http://blog.csdn.net/kohaku/article/details/24551287
- Qlabel 自定义鼠标点击事件以及文本样式效果设计
- Qt-Qlabel 自定义鼠标点击事件以及文本样式效果设计
- QLabel响应鼠标点击事件
- qt自定义鼠标单击事件标签QLabel
- Qt自定义控件---QLabel点击事件
- Qt 中自定义QLabel上的点击事件
- 为QLabel添加鼠标事件
- UILabel点击调用电话以及邮箱,UILabel超链接效果 NSMutableAttributedString文本样式设置
- 自定义图形以及点击效果
- android 自定义控件样式点击效果实现
- 在QLabel上点击获得的效果
- 自定义Spinner样式以及实现hint效果
- 百度地图开发,实现鼠标悬浮事件以及点击事件
- vue列表渲染,以及鼠标点击改变样式的问题
- 字体、文本、鼠标样式
- iOS富文本设置样式,插入图片,点击事件
- 为鼠标点击事件添加全局效果处理
- 为ios控件添加点击事件,以及点击效果
- 纯CSS绘制箭头
- Spring事务管理(一)
- margin在标准文档流下在竖直方向的塌陷现象。
- 【MyBatis框架】SqlMapConfig剖析
- pow2gt函数
- Qlabel 自定义鼠标点击事件以及文本样式效果设计
- RPM使用方法
- Android Studio报错 Error: A library uses the same package as this project:
- malloc、calloc和realloc区别
- Is Subsequence
- 数据结构实验之数组二:稀疏矩阵
- YUM使用方法
- android developer tiny share-20161008
- 多线程之AtomicInteger的使用