例子:好比QWidget發送消息給QApplicationapp
在widget.cpp中重載event事件post
#include <qDebug> bool Widget::event(QEvent *e) { if(e->type() == QEvent::Close) //由於Widget的父類是app { qDebug() << "User event is comming"; } return QWidget::event(e); }
接收事件code
#include "widget.h" #include <QApplication> int 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));