Qt的事件模型

Qt的事件事件和信号与槽的不同:signal and slots 是Qt自己设计的机制之一,但是事件是更底层的,被普遍开发框架接受的机制之一。建议的是,表面 / 界面使用信号与槽,更深层使用事件。事件的来源:事件是窗口系统或者Qt对不同的情况的响应。主要来源就是两个:——是对用户行为的被动响应,比如按下鼠标之类;——被系统独立产生的,比如是定时器事件。或者可以这么说,——Spont...
摘要由CSDN通过智能技术生成

Qt的事件

事件和信号与槽的不同:
signal and slots 是Qt自己设计的机制之一,但是事件是更底层的,被普遍开发框架接受的机制之一。建议的是,表面 / 界面使用信号与槽,更深层使用事件。

事件的来源:
事件是窗口系统或者Qt对不同的情况的响应。主要来源就是两个:
——是对用户行为的被动响应,比如按下鼠标之类;
——被系统独立产生的,比如是定时器事件。
或者可以这么说,
——Spontaneous 事件,即自发事件:由窗口系统产生,它们被放到系统队列中,通过事件循环逐个处理。
——Posted 事件:由Qt或是应用程序产生,它们被Qt组成队列,再通过事件循环处理。
——Sent 事件:由Qt或是应用程序产生,但它们被直接发送到目标对象。

具体的几大类是:
——键盘或者鼠标:当按下 / 释放键或者鼠标键时,一个键盘事件或者鼠标事件就会生成。
窗口:当一个窗口被移动,使下面一个窗口被暴露出来,一个绘制事件就会被产生用来告诉新的可视窗口来重新绘制它本身。
——窗口焦点:只要窗口部件获得 / 焦点,都会有一个事件产生。(其实,窗口焦点是什么,我都不清楚)
——定时器事件:Qt自己开启了个定时器,时间到则触发事件。

当我们在main()函数的末尾调用QApplication::exec()时,程序进入了Qt的事件循环,大概来讲,事件循环如下:</

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值