Qt中的事件学习笔记

本文详细介绍了Qt中事件处理机制,包括事件派发、过滤和处理过程,以及如何通过继承QObject或QWidget重写事件处理器函数。同时,作者提供了自定义按钮的示例,展示了如何在继承QPushbutton时处理点击事件和父类信号的发射。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

视频链接

https://www.bilibili.com/video/BV18B4y1K7Cs/?spm_id_from=333.999.0.0&vd_source=fa4ef8f26ae084f9b5f70a5f87e9e41b

事件

Qt主要用来开发带窗口的应用程序,我们使用的窗口的应用程序都是基于时间(比如安卓中的点击事件),其目的是实现回调(这样程序效率才高)
因此Qt为我们提供了一系列事件处理机制。
当窗口事件产生后,事件会经过事件派发->事件过滤->事件经过->事件处理四个阶段
Qt窗口中对一些列的事件都有一些默认的处理动作,如果我们有需要则要对这些事件进行重写
事件跟信号槽很像,个人理解是信号槽像事件的一部分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

事件处理器函数

每个控件都有对应的事件处理器函数,要重写这些事件处理器函数则必须要用一个子类去继承QObject或者QWidget或者QWidget的子类,对这些事件处理器函数进行重写,这样我们就可以达到自己想要的效果。
通过官方文档中受保护的函数即可找到对应的时间函数,根据自己的需要重写即可

QEvent函数

在这里插入图片描述
注意:如果调用了ignore函数,则本窗口会对该事件忽略,并将这个事件向上传递给父窗口(Qt的窗口都是一层一层的),直到最外层窗口,若都没有处理,则这个事件就被Qt忽略掉了

重写事件小Demo

mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
   
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
   
    delete ui;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值