Qt自定义事件
事件既可以用在多线程,也可以是单线程中对象间通讯
为什么使用事件?与信号槽的区别:
1.事件的分发既可以是同步的,又可以是异步的,槽的回调总是同步的
2.事件可以使用过滤器
3.事件可以携带自定义数据;信号槽传递数据,某些数据类型需要进行qRegisterMetaType注册
如何使用自定义事件
1.一个继承自QEvent的类
2.自定义事件的type来确定这个自定义事件
注意:需要和已经存在的type不能重复,系统保留了0-999的值,Qt定义了自定义事件的两个边界值:QEvent::User(1000)和
QEvent::MaxUser(65535)。Qt提供一个静态的自定义事件注册函数registerEventType()
3.自定义事件的发送
两种发送方式:sendEvent()和postEvent()两中函数,两者区