首先从QLabel派生一个类,在其中重载
mouseReleaseEvent 虚函数。并定义clicked信号。
在
mouseReleaseEvent
函数中发送clicked信号。
代码如下:
#ifndef CUSTOMERQLABEL_H
#define CUSTOMERQLABEL_H
#include <QLabel>
class customerqlabel : public QLabel
{
Q_OBJECT
public:
explicit customerqlabel(QWidget *parent=0, Qt::WindowFlags f=0);
explicit customerqlabel(const QString &text, QWidget *parent=0, Qt::WindowFlags f=0);
protected:
/*!
由Qt自己调用的鼠标事件处理函数,在此发射clicked信号
*/
virtual void mouseReleaseEvent(QMouseEvent * ev);
signals:
void clicked(void);
};
#endif // CUSTOMERQLABEL_H
#include "customerqlabel.h"
customerqlabel::customerqlabel(QWidget *parent, Qt::WindowFlags f):
QLabel(parent,f)
{
}
customerqlabel::customerqlabel(const QString &text, QWidget *parent, Qt::WindowFlags f):
QLabel(text,parent,f)
{
}
void customerqlabel::mouseReleaseEvent(QMouseEvent * ev)
{
Q_UNUSED(ev)
emit clicked();
}
然后在UI界面中右键菜单中选择“提升到”,在对话框中输入对应的派生类名称和头文件。之后单击“添加”按钮

然后选中提升后的label,在右键菜单中选择改变信号/槽,在信号中增加 clicked()


然后在转到槽中选择clicked信号即可。