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 }