1、事件传递顺序规则
在Qt中,事件传递的顺序事件首先传递到目标对象的事件过滤器,然后传递到事件处理函数,最后传递到父对象的事件过滤器和事件处理函数。
为了更好地理解这一过程,下面将通过一个示例来展示事件在父窗口和子窗口之间的传递顺序。
2、示例:父子窗口的事件传递
2.1 项目结构
myproject/
├── main.cpp
├── parentwidget.h
├── parentwidget.cpp
├── childwidget.h
└── childwidget.cpp
2.2 main.cpp
#include <QApplication>
#include "parentwidget.h"
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
ParentWidget parentWidget;
parentWidget.setGeometry(100, 100, 400, 400);
parentWidget.setStyleSheet("background-color: lightblue;");
parentWidget.show();
return app.exec();
}
2.3 parentwidget.h
#ifndef PARENTWIDGET_H
#de