您的位置:首页 > 编程语言 > Qt开发

为QLabel添加鼠标事件

2017-09-19 21:18 211 查看
头文件

#ifndef QLABELEX_H
#define QLABELEX_H

#include <QLabel>

class QLabelEx : public QLabel
{
Q_OBJECT
public:
explicit QLabelEx(QWidget *parent = nullptr);

protected:
void mouseReleaseEvent(QMouseEvent *ev); //抬起
void mousePressEvent(QMouseEvent *ev); //按下
void mouseDoubleClickEvent(QMouseEvent *ev); //双击
void mouseMoveEvent(QMouseEvent *ev); //拖动

signals:
void clicked(QMouseEvent *ev); //抬起
void pressed(QMouseEvent *ev); //按下
void doubled(QMouseEvent *ev); //双击
void moved(QMouseEvent *ev); //拖动

public slots:
};

#endif // QLABELEX_H


源文件
#include "QLabelEx.h"

QLabelEx::QLabelEx(QWidget *parent) : QLabel(parent)
{
}

void QLabelEx::mouseReleaseEvent(QMouseEvent *ev)
{
emit clicked(ev);
}

void QLabelEx::mousePressEvent(QMouseEvent *ev)
{
emit pressed(ev);
}

void QLabelEx::mouseDoubleClickEvent(QMouseEvent *ev)
{
emit doubled(ev);
}

void QLabelEx::mouseMoveEvent(QMouseEvent *ev)
{
emit moved(ev);
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  QLabel Qt信号 emit signal