参考 http://qt-project.org/wiki/Make-a-QLabel-Clickable
1.首先重载QLabel的mousePressEvent,这样点击QLabel时就能发出clicked()信号,将信号connect到自定义的slot就可以了
ClickableLabel.h
#pragma once #include "qlabel.h" #include <QMouseEvent> class ClickableLabel : public QLabel{ Q_OBJECT public: explicit ClickableLabel(QWidget* parent = 0) :QLabel(parent){ setText(""); }; ~ClickableLabel(); signals: void clicked(); protected: void mousePressEvent(QMouseEvent* event){ emit clicked(); } };
ClickableLabel.cpp
#include "ClickableLabel.h" ClickableLabel::~ClickableLabel(){};
2.使用ClickableLabel取代QLabel