例子:比如QWidget发送消息给QApplication
在widget.cpp中重载event事件
#includebool Widget::event(QEvent *e) { if(e->type() == QEvent::Close) //因为Widget的父类是app { qDebug() << "User event is comming"; } return QWidget::event(e); }
接收事件
#include "widget.h"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); Widget w; w.show(); // 发送一个Event给MyWidget qDebug() << "begin send"; a.postEvent(&w, new QEvent(QEvent::User)); // sendEvent,建议用postEvent qDebug() << "end send"; return a.exec();}//可以在程序任意地方qApp.postEvent(&w, new QEvent(QEvent::User));