![cadf73c2f77d66e75d2c0fc0cf9da8fc.png](https://i-blog.csdnimg.cn/blog_migrate/c014b328ce3f385a9a5936d90559297d.jpeg)
创建自定义事件
虽然Qt内建了大量的事件类, 可以满足开发一个应用的绝大部分需求,但是有时候我们希望使用自定义事件来达到某个目的。实现自定义事件的步骤如下:
- 创建一个继承自QEvent的类,例如: class MyEvent(QEvent)。
- 定义事件类型(取值在QEvent.User和QEvent.MaxUser之间,建议使用registerEventType()函数自动创建一个全局唯一一个的事件类型,防止重复)。
- 使用QCoreApplication的静态方法sendEvent()或postEvent()发送事件。
- 在创建的类(比如:MyEvent)中重写event()或者customEvent()方法处理自定义事件。
发送事件有两种方法,一种是使用sendEvent()函数,一种是使用postEvent()函数。
1. sendEvent()函数: 该函数是阻塞式调用,它发送的对象事件,等待接收对象处理结束后才返回。其原型如下:
QCoreApplication.sendEvent(receiver : QObject, event : 'QEvent'),
参数:receiver为接收事件对象, event为传递的事件对象;
返回值:若事件被处理