Qt中的事件,学完有一种挺重要的但是有一种实际开发中可能用不上的感觉。。还是记录下来把。。
1.Event函数
很多对象的操作都对应一个Event函数 ,主窗口也有event函数,用于对其子类事件信号分发(它们都是虚函数)。我理解为 event函数就是处于信号和槽之间的一层函数,他可以决定是否忽略信号(槽函数就接收不到),或者执行完一定的操作后继续传递信号(槽函数可以接收到)。
使用时先需要在h文件中声明,然后再定义。
(1)比如鼠标按下的Event函数:
(2)主窗口的event函数:
(2)event函数信号的接受与忽略:
当我们对以上event函数进行定义时,如果不返回事件信号或者返回“true”的话,那么信号就不会继续传递导致其他槽函数接收不到。
如:
注意使用主窗口把event信号传给其子类时,需要进行强制类型转换!
例如:
ev本来是QEvent的对象,这里强制转化为QMouseEvent。
2.EventFilter函数
我理解的是 他是与event的上一层,属于信号和event的中间一层,一般适用于每个主窗口。
画一张图来表示:
作为初学者,我感觉其功能与Event函数差不太多。
同样的,如果定义了它,也需要是否决定是否继续传递信号。
继续传递使用