- 36
- 0
- 约4.25千字
- 约 15页
- 2018-03-27 发布于江西
- 举报
qt消息处理机制.ppt
页码 QT事件处理机制 什么是事件? 事件:由窗口系统或者Qt自身产生的,用以响应所发生的各类事情。 事件产生类型: 1.键盘或者鼠标事件:用户按下或者松开键盘或者鼠标上的按键时,就可以产生一个键盘或者鼠标事件 2.绘制事件:某个窗口第一次显示的时候,就会产生一个绘制事件,用来告诉窗口需要重新绘制它本身,从而使得该窗口可见 3. QT事件:Qt自己也会产生很多事件,比如QObject::startTimer()会触发QTimerEvent QT事件处理机制 谁来产生事件 ? 输入设备 :比如键盘,鼠标产生的事件keyPressEvent ,keyReleaseEvent,mousePressEvent事件(他们被封装成QMouseEvent和QKeyEvent)。 这些事件来自于底层的操作系统,他们可以异步的形式通知Qt事件处理系统。 QT自己: QT自己会产生很多事件,比如QObject::startTimer()会触发QTimerEvent 用户自定义事件:用户的程序还可以自己定制事件 QT事件处理机制 谁来接受和处理事件 ? ————QObject QObject三大职责(内存管理、内省(intropection)与事件处理制) 任何一个想要接受并处理事件的对象均须继承自QObject ,可以重写 QObject::event() 来处理事件,也可以由父类处理。 QT事件处理机制 谁来负责分发事件 ? 对于non-GUI的Qt程序,是由QCoreApplication负责将QEvent分发给 QObject的子类-Receiver. 对于Qt GUI程序,由QApplication来负责 接下来,将通过对代码的解析来看看QT是利用event loop从事件队列中获取用户输入事件,又是如何将事件转义成QEvents,并分发给相应的QObject处理 QT事件处理机制 QApplication? - QCoreApplication (得到当前Thread数据?? ,委任 QEventLoop?处理事件队列循环 )-QEventLoop(只要没有遇见exit, processEvents循环派发事件(将事件派发给与平台相关的 QAbstractEventDispatcher子类 ) )? -QAbstractEventDispatcher (打包成message后,通过标准Windows API ,把消息传递给了Windows OS,Windows OS得到通知后回调QtWndProc ) -QtWndProc (事件又是怎么一步步通过QApplication分发给最终事件的接受和处理者QWidget::event, (QWidget继承Object,重写其虚函数event) ) QT事件处理机制 #include?QApplication??? ? #include?“QWidget.h??? ? //Section?1??? ? int?main(int?argc,?char?*argv[])??? ? {??? ? ????QApplication?app(argc,?argv);??? ? ????QWidget?window;? ? ????window.show();??? ? ????return?app.exec();?//?进入Qpplication事件循环,见section?2??? ? }??? ? QT事件处理机制 //?Section?2:???? ? int?QApplication::exec()??? ? {??? ? ???//skip?codes??? ? ???//简单的交给QCoreApplication来处理事件循环=〉section?3??? ? ???return?QCoreApplication::exec();??? ? }?? QT事件处理机制 //?Section?3??? ? int?QCoreApplication::exec()??? ? {??? ? ????//得到当前Thread数据??? ? ????QThreadData?*threadData?=?self-d_func()-threadData;??? ? ????if?(threadData?!=?QThreadData::current())?{??? ? ????????qWarning(%s::exec:?Must?be?called?from?the?main?thread,?self-metaObject()-className());??? ? ????????return?-
您可能关注的文档
- 七年级第二学期期末复习指导.ppt
- 004Java基础.ppt
- 高等大气物理:第十章 波在湍流大气中的传输.ppt
- ppt9网卡.ppt
- 南北各异的自然环境.ppt
- 会计原理与实务3T7.ppt
- 第六章 用户社会交往与互助中的信息活动.ppt
- 预分解窑系统的调节与控制.ppt
- 计算机网络工程第2章以太网.ppt
- 1人大附中0.复数的加减法.ppt
- 2026及未来5年中国电磁铁行业市场发展监测及投资战略咨询报告.docx
- 2026及未来5年中国建筑工程机械行业市场发展监测及投资战略规划报告.docx
- 2026及未来5年中国硫化镍行业市场调研分析及投资战略规划报告.docx
- 2026及未来5年中国烷化剂市场运营态势及发展前景预测报告.docx
- 2026年涤纶细旦长丝项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年弓型虫抗体试剂项目可行性研究报告(市场数据调查、监测研究).docx
- 2026年拖链系统用高柔性数据传输电缆项目可行性研究报告(市场数据调查、监测研究).docx
- 2025年中国水晶圆盘市场调查研究报告.docx
- 2025年中国长网双辊挤浆机市场调查研究报告.docx
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
最近下载
- 储能政策与法规研究.pptx VIP
- 钢筋混凝土框架结构施工组织设计方案.doc VIP
- 以我身份证在银行帮别人贷款协议书8篇.docx VIP
- 钢筋混凝土框架结构施工组织设计方案.docx VIP
- 2025年烟台汽车工程职业学院高职单招数学历年(2016-2024)频考点试题含答案解析.docx
- 第一单元第2课《多样的中国民间美术》教学设计 人美版2025初中美术七年级下册.docx VIP
- 河南省天一大联考英语.doc VIP
- 工程建设-钢筋混凝土框架结构施工组织设计方案.doc VIP
- 2025春初中毕业生学业考试指导书历史教材梳理答案.pdf VIP
- 农业生态学 第一章.ppt VIP
原创力文档

文档评论(0)