Qt 笔记:事件处理(上)
Qt消息处理模型
Qt平台将系统产生的消息转换为Qt事件
-Qt事件是一个QEvent的对象
-Qt事件用于描述程序内存的外部发生的动作
-任意的QObject对象都具备处理事件的能力
GUI应用程序的事件处理方式
-Qt事件产生后立即被分发到QWidget对象
-QWidget 中的event(QEvent*)进行事件处理
-event()根据事件类型调用不同的事件处理函数
-在事件处理函数中发送Qt中预定义的信号
-调用信号关联的槽函数
QPushButton事件处理
-接受到鼠标事件
-调用event(QEvent*)成员函数
-调用mouseReleaseEvent(QMouseEvent*)成员函数
-调用click()成员函数
-触发信号SIGNAL(clicked())
事件(QEvent)和信号(SIGNAL)不同
-事件由具体对象进行处理
-信号由具体对象主动产生
-改写事件处理函数可能导致程序行为发生改变
-信号是否存在对应的槽函数不会改变程序行为
-一般而言,信号在具体的事件处理函数中产生
总结:
`Qt中的事件(QEvent)和信号(SIGNAL)不同
·事件由QObject的对象进行处理
·信号由QObject对象触发
·重写事件处理函数可能改变程序行为
·信号的触发不会对程序行为造成影响
·事件处理是在实际工程开发中的应用非常普遍