QT鼠标事件
1.概述
这篇文章介绍如何使用事件和获取事件的信号
2.创建项目
创建一个widget类型项目,在widget.ui
文件中添加一个label
控件
然后在项目名称上右键选择Add new...
添加文件,选择
C++ Class
自定义类名Mylabel
,选择基类Base class
,点击完成
3.重写鼠标进入和离开的事件
查看帮助文档,鼠标进入和离开的事件名称
在mylabel.h
重写这两个事件,因为要将mylabel提升为QLabel
类型的部件,因此MyLabel类要改成继承QLabel
#ifndef MYLABEL_H
#define MYLABEL_H
//改成QLabel
#include <QLabel>
// 改成初始化QLabel
class MyLabel : public QLabel
{
Q_OBJECT
public:
explicit MyLabel(QWidget *parent = nullptr);
// 鼠标进入事件
void enterEvent(QEvent *event);
// 鼠标离开事件
void leaveEvent(QEvent *);
signals:
};
#endif // MYLABEL_H
在mylabel.cpp
重写这两个事件的功能
#include "mylabel.h"
#include <QDebug>
MyLabel::MyLabel(QWidget *parent) : QWidget(parent)
{
}
// 鼠标进入事件
void MyLabel::enterEvent(QEvent *event)
{
qDebug() << "鼠标进入";
}
// 鼠标离开事件
void MyLabel::leaveEvent(QEvent *)
{
qDebug() << "鼠标离开";
}
在widget.ui
文件中右键label控件,选择promote to
提升,提升的类名就是创建的MyLabel
类名,基类选择QLabel
然后点击Add
添加 , 点击Promote
当鼠标进入label和离开label,输出调试信息。