Qt 笔记:事件处理(上)

Qt消息处理模型

Qt 笔记:事件处理(上)

 Qt平台将系统产生的消息转换为Qt事件

-Qt事件是一个QEvent的对象

-Qt事件用于描述程序内存的外部发生的动作

-任意的QObject对象都具备处理事件的能力

Qt 笔记:事件处理(上)

 GUI应用程序的事件处理方式

-Qt事件产生后立即被分发到QWidget对象

-QWidget 中的event(QEvent*)进行事件处理

-event()根据事件类型调用不同的事件处理函数

-在事件处理函数中发送Qt中预定义的信号

-调用信号关联的槽函数

QPushButton事件处理

-接受到鼠标事件

-调用event(QEvent*)成员函数

-调用mouseReleaseEvent(QMouseEvent*)成员函数

-调用click()成员函数

-触发信号SIGNAL(clicked())

事件(QEvent)和信号(SIGNAL)不同

-事件由具体对象进行处理

-信号由具体对象主动产生

-改写事件处理函数可能导致程序行为发生改变

-信号是否存在对应的槽函数不会改变程序行为

-一般而言,信号在具体的事件处理函数中产生

总结:

`Qt中的事件(QEvent)和信号(SIGNAL)不同

·事件由QObject的对象进行处理

·信号由QObject对象触发

·重写事件处理函数可能改变程序行为

·信号的触发不会对程序行为造成影响

·事件处理是在实际工程开发中的应用非常普遍