QLabel添加Click信号

时间:2024-04-30 08:28:28

使用自定义label来实现此功能

其他控件可参照此例。

#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();
}
#ifndef CUSTOMERQLABEL_H
#define CUSTOMERQLABEL_H
#include <QLabel> class CustomerQlabel : public QLabel
{
Q_OBJECT
public:
explicit CustomerQlabel(QWidget *parent=, Qt::WindowFlags f=);
explicit CustomerQlabel(const QString &text, QWidget *parent=, Qt::WindowFlags f=);
protected:
/*!
由Qt自己调用的鼠标事件处理函数,在此发射clicked信号
*/
virtual void mouseReleaseEvent(QMouseEvent * ev);
signals:
void clicked(void);
};
#endif // CUSTOMERQLABEL_H