不要直接使用QLable,自己写一个类集成QLabel
头文件:
#ifndef LABEL_H
#define LABEL_H
#include <QLabel>
#include <QWidget>
#include <Qt>
class Label : public QLabel {
Q_OBJECT
public:
explicit Label(QWidget* parent = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags());
~Label();
signals:
void clicked();
protected:
void mousePressEvent(QMouseEvent* event);
};
#endif // LABEL_H
cpp文件
#include "Label.h"
Label::Label(QWidget* parent, Qt::WindowFlags f)
: QLabel(parent) {
}
Label::~Label() {}
void Label::mousePressEvent(QMouseEvent* event) {
emit clicked();
}
使用:
connect(Label实例化对象,SIGNAL(clicked()),this,SLOT(关联的槽函数()));