Qt编程指南
■ Qt事件
- Qt使用了一个事件队列,当新的事件发生时,会被追加到事件队列的尾部,前一个事件完成以后,取出后面的时间进行处理。
- 必要时候Qt事件也是可以不进入事件队列的,而是直接处理。
- 事件还可以使用 “事件过滤器” 进行过滤。
- 我们使用组件关心的是信号槽;如果自定义组件,我们关心的是事件,因为我们可以通过事件来改变组件的默认操作。
- QApplication对象,然后调用了它的exec()函数,其实这个函数就是开始QT的事件循环,
- Qt创建一个事件对象,QT所有的事件都继承于QEvent类。在事件对象创建完毕后,QT将这个事件对象传递给QObject的event()函数。Event()函数不直接处理事件,而是按照事件对象的类型分派特定的事件处理函数。
- Qt事件处理分五个层次:重定义事件处理函数、重定义event()函数、为单个组件安装事件过滤器、为QApplication安装事件过滤器、重定义QCoreApplication的notify()函数。这几个层次的控制是逐层增大的。
- 事件比信号槽优点:1事件分发可以使同步也可以使异步的,2 事件可以使用过滤器。