C++为QLabel增加单击事件

 1 原文来源:
 2 http://www.cnblogs.com/findumars/p/4058379.html
 3 
 4 原理:
 5 其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标的时,就发射点击信号。
 6 
 7 1.定义Label类
 8 #ifndef CLICKEDLABEL_H_  
 9 #define CLICKEDLABEL_H_  
10 #include <QLabel>  
11 #include <QWidget>  
12 class ClickedLabel : public QLabel  
13 {  
14     Q_OBJECT  
15 signals:  
16     void Clicked(ClickedLabel* clicked);  
17 public:  
18     ClickedLabel(QWidget *parent=0): QLabel(parent),m_str("")  
19     {  
20         setText(m_str);  
21     };  
22     ~ClickedLabel() {};  
23 protected:  
24     void mouseReleaseEvent( QMouseEvent* );  
25 private:  
26     QString m_str;  
27 };  
28 #endif /* CLICKEDLABEL_H_ */  
29 
30 2.实现代码
31 #include "ClickedLabel.h"  
32 void ClickedLabel::mouseReleaseEvent(QMouseEvent *evt)  
33 {  
34     emit Clicked(this);  
35 } 

 

posted on 2015-07-09 17:29  疯狂delphi  阅读(740)  评论(0编辑  收藏  举报

导航