qt 自定义消息发送机制
(2015-06-28 23:51:57)
标签:
消息队列 |
分类: Qt |
qt信号槽的connect还有c++11标准的lamada表达式也就不说了,现在介绍的是notify
在QApplication类中的一个虚函数:bool notify(QObject* , QEvent* );
自定义一个applicatio类,然后重载notify实现自定义功能:
bool notify(QObject* ob,
QEvent* ev)
{
}
这样,我们点击主窗口的时候就会打印出this widget is clicked
如果我们需要像某个子对象发送消息的时候,我们可以采用下面的方式:
注: app是一个application的对象
app.postEvent(w, ev);
postEvent的函数原型如下:
static void postEvent(QObject *receiver, QEvent *event, int
priority = Qt::NormalEventPriority);
其中第一个参数是要发送的对象,而且这个对象的类中必须要实现bool Event(QEvent*
)这个函数,其中QEvent*这个参数就是接收的传递过来的消息!
(还有一个sendEvent,两者的区别是send是消息立即处理,而post只是先放到消息队列中,然后一起处理)
第二个参数是要发送的事件, 第三个参数是传递属性有默认值
前一篇:重载、隐藏、覆盖的区别
后一篇:面试总计001

加载中…