C++为QLabel增加单击事件

 1 原文来源:
 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 } 

 

作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.