16,216
社区成员
发帖
与我相关
我的任务
分享
#ifndef CLICKLABEL_H
#define CLICKLABEL_H
#include <QLabel>
class ClickLabel:public QLabel
{
Q_OBJECT
public:
explicit ClickLabel(QWidget *parent = 0);
ClickLabel(const QString &text, QWidget *parent=0);
signals:
void clicked();//鼠标单击信号
protected:
// 鼠标单击事件
void mouseReleaseEvent(QMouseEvent *);
void enterEvent(QEvent *);
void leaveEvent(QEvent *);
};
#endif // CLICKLABEL_H
#include "ClickLabel.h"
#include <QMouseEvent>
ClickLabel::ClickLabel(QWidget *parent):
QLabel(parent)
{
QPalette pa;
pa.setColor(QPalette::WindowText, Qt::blue);
setPalette(pa);
}
ClickLabel::ClickLabel(const QString &text, QWidget *parent):
QLabel(parent)
{
QPalette pa;
pa.setColor(QPalette::WindowText, Qt::blue);
setPalette(pa);
setText(text);
}
void ClickLabel::mouseReleaseEvent(QMouseEvent *ev)
{
if (ev->button() == Qt::LeftButton)
emit clicked();//(this);
}
void ClickLabel::enterEvent(QEvent *)
{
QPalette pa;
pa.setColor(QPalette::WindowText, Qt::red);
setPalette(pa);
}
void ClickLabel::leaveEvent(QEvent *)
{
QPalette pa;
pa.setColor(QPalette::WindowText, Qt::blue);
setPalette(pa);
}