QT鼠标事件

QT鼠标事件

1.概述

这篇文章介绍如何使用事件和获取事件的信号

2.创建项目

创建一个widget类型项目,在widget.ui文件中添加一个label控件

然后在项目名称上右键选择Add new... 添加文件,选择
C++ Class

自定义类名Mylabel,选择基类Base class,点击完成

3.重写鼠标进入和离开的事件

查看帮助文档,鼠标进入和离开的事件名称

mylabel.h重写这两个事件,因为要将mylabel提升为QLabel类型的部件,因此MyLabel类要改成继承QLabel

c 复制代码
#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重写这两个事件的功能

c 复制代码
#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,输出调试信息。

相关推荐
天若有情67332 分钟前
程序员原创|借鉴JS事件冒泡,根治电脑文件混乱的“冒泡整理法”
开发语言·javascript·windows·ecmascript·电脑·办公·日常
特种加菲猫1 小时前
继承,一场跨越时空的对话
开发语言·c++
玩转单片机与嵌入式2 小时前
玩转边缘AI(TInyML):需要掌握的C++知识汇总!
开发语言·c++·人工智能
茉莉玫瑰花茶3 小时前
Qt 信号与槽 [ 1 ]
开发语言·数据库·qt
AI人工智能+电脑小能手3 小时前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式
张健11564096484 小时前
临界区和同一线程上锁
java·开发语言·jvm
头发够用的程序员4 小时前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试
夜猫逐梦5 小时前
【逆向经验】一篇文章讲透为什么CE搜不到Python游戏的内存值
开发语言·python·游戏
SilentSamsara5 小时前
闭包的本质:Python 如何捕获自由变量
开发语言·python·青少年编程·pycharm