Qt 的事件来自操作系统,Qt自己产生。当Qt应用程序运行时,qt有一个未处理的事件队列,每个事件处理周期内,将处理排在队头的事件。新产生的事件排到队尾。
当事件被处理时,事件将被发送到它的接收者。这个接受者在事件产生时确定就确定了。
在简单的模型中,事件接受者通过 event()来处理事件,这个函数有个布尔型的返回值。如果返回true ,则意味着这个事件处理完毕。但如果返回false,则表明这个事件还未处理完成,还需要进一步处理。此时qt将此事件传递给当前对象的父部件。即进入父对象的 event()函数。以此类推,直至事件处理完毕,或者传递到顶层部件之后还未完成,直接丢弃此事件。