Qt自定义标签按钮
2018-06-17 22:27:35来源:未知 阅读 ()
当你接触到Qt时,你会为它极为方便的跨平台方面感到吃惊,从而想尝试着使用Qt。渐渐地你会发现Qt自带的一些控件不能满足自己的需要,此时就需要我们自己定义一个属于自己的控件。总所周知,标签的风格设置类比较多,但默认的标签没有鼠标响应事件。
今天,给大家带来的是:标签按钮类。从名字就可以看出,将标签修改成按钮,从而让标签具有按钮鼠标的响应功能。
在你的Qt工程中
添加新文件:C++ Class,输入类名:ClickedLabel ,基类:QLabel。Qt会自动生成ClickedLabel.h和ClickedLabel.cpp文件。
在ClickedLabel.h中
1 #ifndef CLICKEDLABEL_H 2 #define CLICKEDLABEL_H 3 4 #include <QLabel> 5 //夜潇:17/06/04 6 class ClickedLabel : public QLabel 7 { 8 Q_OBJECT 9 public: 10 ClickedLabel( QWidget* parent = 0); 11 int MyLabelPressed; 12 void mousePressEvent(QMouseEvent *e);//添加鼠标响应事件 13 void mouseReleaseEvent(QMouseEvent *e);//添加鼠标释放事件 14 signals: 15 void clicked();//点击信号 16 17 }; 18 19 #endif // CLICKEDLABEL_H
之后在ClickedLabel.cpp中的构造函数中设置默认风格(注:可以不写),给MyLabelPressed 附一个初值0;
1 #include "clickedlabel.h" 2 3 ClickedLabel::ClickedLabel(QWidget* parent) : QLabel(parent) 4 { 5 setText("作者:夜潇!"); //添加标签默认文本 6 setAlignment(Qt::AlignCenter); //设置默认对齐方式:中心对齐(居中) 7 //设置默认标签风格 8 setStyleSheet("ClickedLabel { background-color: rgb(143,122,102); border-radius: 10px; font: bold; color: white; }"); 9 MyLabelPressed = 0; 10 } 11 12 void ClickedLabel::mousePressEvent ( QMouseEvent * e ) 13 { 14 MyLabelPressed = 1; 15 } 16 17 void ClickedLabel::mouseReleaseEvent ( QMouseEvent * e ) 18 { 19 if(MyLabelPressed) 20 { 21 emit clicked(); 22 MyLabelPressed = 0; 23 } 24 }
然后在你的Qt工程中
添加头函数:#include "clickedlabel.h"
添加私有函数(private)或者公共函数(public):ClickedLabel *Btn1;
之后再工程文件的CPP文件中实现函数就好了
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++中自定义结构体或类作为关联容器的键 2020-03-15
- c++-变量,this指针,全局函数,成员函数,自定义数组类 2019-12-21
- std::map自定义类型key 2019-12-03
- 自定义日历(四)-区间选择控件 2019-11-02
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash