一、概述
QLabel在QT中主要用途是显示信息,自身没有具备捕获鼠标单击事件,但在应用程序开发的过程中,常常需要用到响应鼠标点击事件。
二、实现结果:
三代码实现过程:
基于QLabel生成继承类,并在继承类中声明鼠标单击信号和响应事件
在实现类中实现相关代码
附详细代码:
.h文件
#ifndef CUSTOMLABEL_H
#define CUSTOMLABEL_H
#include <QLabel>
#include <QObject>
#include<QWidget>
#include<QMouseEvent>
class customLabel : public QLabel
{
Q_OBJECT
public:
customLabel(QWidget *parent=nullptr);
signals:
void clicked();
protected:
virtual void mousePressEvent(QMouseEvent* event);
};
#endif // CUSTOMLABEL_H
.cpP文件
#include "customlabel.h"
customLabel::customLabel(QWidget *parent)
:QLabel(parent)
{
}
void customLabel::mousePressEvent(QMouseEvent *ev)
{
if(ev->button()==Qt::LeftButton)
{
emit clicked();
}
QLabel::mousePressEvent(ev);
}