开发工具:
文件大小: 730kb
下载次数: 0
上传时间: 2020-07-23
详细说明:9.1事件机制与原理分析
9.1.1 什么是Qt事件驱动?
我们在写Qt工程类项目的时候都会发现,主程序里面都有这么一段代码:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
有点抽象,Qt进行了封装
实际上a.exec()便是Qt程序进入事件消息循环,
9.1.2 图形界面应用程序的消息处理模型
回调、os的魔抓windows、linux,从用户层到 内核层,如何管理进程、线程、
Os如何处理、底层机制
特点:
基于操作系统才能运行
GUI应用程序提供的功能必须由用户触发
用户操作界面时操作系统是第一个感知的
系统内核的消息通过事件处理转变成QT的信号
9.1.3 Qt中的事件处理
(1)在Qt中,事件被封装成一个个对象,所有的事件均继承自抽象类QEvent.
事件处理的核心包括事件①产生、②分发、③接受和处理
①事件的产生
谁来产生事件?
最容易想到的是我们的输入设备,比如键盘、鼠标产生的
keyPressEvent,keyReleaseEvent,
mousePressEvent,mouseReleaseEvent事件
(被封装成QMouseEvent和QKeyEvent)。
②Qt中事件的分发
谁来负责分发事件?
对于non-GUI的Qt程序,是由QCoreApplication负责将QEvent分发给QObject的子类-Receiver.
对于Qt GUI程序,由QApplication来负责
③事件的接受和处理
谁来接受和处理事件?
答案是QObject。
类是整个Qt对象模型的心脏,事件处理机制是QObject三大职责(
内存管理、内省intropection、事件处理制)之一。
任何一个想要接受并处理事件的对象均须继承自QObject,可以选择重载QObject::event()函数或事件的处理权转给父类。
9.1.4 QObject的内省机制
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.