新建项目
加标签控件
当鼠标进去,显示【鼠标进入】,离开时显示【鼠标离开】
将QLable提升成自己的控件,然后再去捕获
添加文件
改继承的类名
提升类
同一个父类,可以提升
效果
现在代码就和Qlabel对应起来了。
在.h中声明,.cpp中实现
#include "mylabel.h"
#include <QDebug>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
}
// 鼠标进入
void MyLabel::enterEvent(QEvent* ) {
qDebug() << "鼠标进入";
}
// 鼠标离开
void MyLabel::leaveEvent(QEvent* ) {
qDebug() << "鼠标离开";
}
测试
鼠标的移动、按下、松开事件
// 鼠标移动事件
virtual void mouseMoveEvent(QMouseEvent *ev) override;
// 鼠标按下事件
virtual void mousePressEvent(QMouseEvent *ev) override;
// 鼠标松开事件
virtual void mouseReleaseEvent(QMouseEvent *ev) override;
实现
#include "mylabel.h"
#include <QDebug>
MyLabel::MyLabel(QWidget *parent) : QLabel(parent)
{
}
// 鼠标进入
void MyLabel::enterEvent(QEvent* ) {
qDebug() << "鼠标进入";
}
// 鼠标离开
void MyLabel::leaveEvent(QEvent* ) {
qDebug() << "鼠标离开";
}
// 鼠标移动事件
void MyLabel::mouseMoveEvent(QMouseEvent *ev) {
qDebug() << "鼠标移动";
}
// 鼠标按下事件
void MyLabel::mousePressEvent(QMouseEvent *ev) {
qDebug() << "鼠标按下";
}
// 鼠标松开事件
void MyLabel::mouseReleaseEvent(QMouseEvent *ev) {
qDebug() << "鼠标松开";
}
测试
未完待续