QT QT事件系统


文档顶部

8 08_QT事件系统


目录



8.1 01_QEvent


文档顶部   本章顶部

8.1.1 01_概念

概念。

在Qt中QEvent是一个基础类, 用于表示各种类型的事件, 如鼠标点击、键盘输入、窗口大小调整等。 它提供了事件的通用接口, 并定义了事件处理的基本结构。 每个具体的事件类型都继承自QEvent。


文档顶部   本章顶部

8.1.2 02_特点

特点。

QEvent 的特点: 事件分类: Qt将所有类型的事件归类为不同的子类, 并根据事件的性质和来源进行命名 例如QMouseEvent, QKeyEvent, QResizeEvent。 事件处理机制: 当一个事件发生时, Qt会自动将该事件传递给相关的对象。 如果对象中定义了处理特定事件类型的槽函数, 则这些槽会被调用以响应事件。 postEvent 的特点: 发布事件: postEvent是一个方法, 用于在当前线程中向指定的对象发布一个事件。 这意味着你需要知道目标对象的引用, 并且该方法通常用于内部处理或特定场景下的事件触发。 异步性: 使用postEvent时, 事件的处理可能不会立即发生。 Qt会将事件放入事件队列中, 在适当的时候 例如在下一个事件循环周期 调用相应的槽函数来处理这些事件。


文档顶部   本章顶部

8.1.3 03_实践

实践。

首先定义了补天云事件类型 ButianyunEvent。 事件类型是QEvent中定义的User类型。 这个事件可以携带一些参数。 然后定义了补天云对象类型 ButianyunObject。 这个类型中重写了QT事件处理函数event。 在event函数中, 首先判断事件类型是否User类型。 如果是则进一步将QEvent事件 转换为ButianyunEvent事件。 如果转换成功, 则表示这确实是一个ButianyunEvent事件, 那么可以获取到事件携带的参数。 调用QEvent的accept函数, 表示事件已经被接受。 同时返回true表示这个事件 已经被这个对象处理了。 在main函数中, 首先创建对象, 然后使用postEvent函数异步投递事件。 这个事件在后续的事件循环中被处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值