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,输出调试信息。

相关推荐
马剑威(威哥爱编程)11 分钟前
哇喔!20种单例模式的实现与变异总结
java·开发语言·单例模式
白-胖-子23 分钟前
【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-统计数字
开发语言·c++·算法·蓝桥杯·等考·13级
好睡凯25 分钟前
c++写一个死锁并且自己解锁
开发语言·c++·算法
java—大象29 分钟前
基于java+springboot+layui的流浪动物交流信息平台设计实现
java·开发语言·spring boot·layui·课程设计
yyqzjw33 分钟前
【qt】控件篇(Enable|geometry)
开发语言·qt
csdn_kike34 分钟前
QT Unknown module(s) in QT 以及maintenance tool的更详细用法(qt6.6.0)
开发语言·qt
西西弗Sisyphus35 分钟前
Qt 获取当前系统中连接的所有USB设备的信息 lsusb版
qt
JerryXZR1 小时前
JavaScript核心编程 - 原型链 作用域 与 执行上下文
开发语言·javascript·原型模式
依旧阳光的老码农1 小时前
标准C++ 字符串
开发语言·c++
用屁屁笑2 小时前
Java:JVM
java·开发语言·jvm