Qt事件处理

一 事件介绍

事件是用户和应用软件间产生的一个交互操作,由用户操作产生或者系统内部产生,通过事件循环对事件进行处理,事件也可以用来在对象间进行信息交互。 . Qt平台会将系统产生的消息转换为Qt事件 .Qt事件是一个QEvent的对象 .Qt事件用来描述程序内部或外部发生的动作·任意的QObject对象都具备事件处理的能力

常见的事件如下: ·键盘事件:按键按下或松开 ·鼠标事件:鼠标移动。鼠标按键的按下和松开·拖放事件:用鼠标进行拖放 ·滚轮事件:鼠标滚轮滚动 ·绘屏事件:重绘屏幕的某些部分·

定时事件:定时器时间到达 大小改变事件:widgets的大小改变

二 事件处理

Qt's main event loop (QcoreApplication:exec()) fetches native window system events fromthe event queue,translates them into QEvents, and sends the translated events to QObjects.

Qt的主事件循环(QCoreApplication::exec())从事件队列中获取本机窗口系统事件,将它们转换为QEvent,并将转换后的事件发送到QObject

具体流程如下:

应用程序开始时(运行main()),会创建一个事件循环实例,通常是通过QCoreApplicationQApplicationexec()函数来启动事件循环。事件循环开始监听事件队列

事件可以由用户输入(如鼠标点击、键盘按键)或系统事件(如定时器事件、窗口事件)产生。事件首先被封装成QEvent类的一个实例,或者其子类,如QMouseEventQKeyEvent等。一旦事件被创建,它会被加入到Qt的事件队列中。

当有事件到达时,事件循环从队列中取出事件,根据事件的类型,将其分发给适当的目标对象。

 

QObjects receive events by having their Qobject::event() function called.The function canbe reimplemented in subclasses to customize event handling and add additional event types;QWidget:event() is a notable example.By default, events are dispatched to event handlerslike Q0bject::timerEvent() and QWidget:mouseMoveEvent(). QObje

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值