【Qt】事件的概念

        在Qt中有一种特殊的机制——信号槽,用户进行的各种操作,就可能会产生出信号,可以给某个信号指定槽函数,当信号触发时,就能够自动的执行到对应的槽函数。

        事件与信号槽非常类似,用户进行的各种操作也就产生事件,程序员同样可以给事件关联上处理函数(处理的逻辑),当事件触发的时候,就能执行到对应的代码。

事件本身是操作系统提供的机制。Qt也同样把操作系统事件机制进行了封装,拿到了Qt里面,但是由于事件对应的代码编写起来不是很方便,所以Qt对于事件这样的机制又进一步的封装,就得到了信号槽。

也就是说,信号槽就是对于事件的进一步封装,事件是信号槽的底层机制。

实际Qt开发程序过程中,绝大部分和用户之间进行的交互都是通过“信号槽”来完成的。但是有些特殊情况下,信号槽不一定能搞定(某个用户的动作行为,Qt没有提供对应的信号),此时就需要通过重写事件处理函数的形式,来手动处理事件的响应逻辑。

开放事件机制可以根据实际的需要进行更深度的定制化 diy 操作了。

用户进行很多操作,就会产生很多事件,当然也会产生很多信号。

 

        事件是应用程序内部或者外部产生的事情或者动作的通常。在 Qt 中使⽤⼀个对象来表⽰⼀个事件。所有的 Qt 事件均继承于抽象类 QEvent。事件是由系统或者 Qt 平台本⾝在不同的时刻发出的。当⽤⼾按下⿏标、敲下键盘,或者是窗⼝需要重新绘制的时候,都会发出⼀个相应的事件。⼀些事件是在⽤⼾操作时发出,如键盘事件、⿏标事件等,另⼀些事件则是由系统本⾝⾃动发出,如定时器事件。

不同场景下,需要关注的点是不一样的,这些事件的子类中就会包含一些对应的不同的属性。

常见事件描述:
 

事件名称描述

⿏标事件

⿏标左键、⿏标右键、⿏标滚轮,⿏标的移动,⿏标按键的按下和松开

键盘事件

按键类型、按键按下、按键松开

定时器事件

定时时间到达

进⼊离开事件

⿏标的进⼊和离开

滚轮事件

⿏标滚轮滚动

绘屏事件

重绘屏幕的某些部分

显⽰隐藏事件

窗⼝的显⽰和隐藏

移动事件

窗⼝位置的变化

窗⼝事件

是否为当前窗⼝

⼤⼩改变事件

窗⼝⼤⼩改变

焦点事件

键盘焦点移动

拖拽事件

⽤⿏标进⾏拖拽

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值