我有QMainWindow
哪个嵌入了QQuickWidget
.
根据应用程序的状态(初始化或未初始化)QQuickWidget
显示两个不同的 qml (splash.qml
和)。main.qml
我希望我的窗口在显示时处于splashScreen模式splash.qml
,所以我这样做了:
MainWindow::MainWindow(QMainWindow * parent) :QMainWindow(parent)
{
QApplication::setAttribute(Qt::AA_DontCreateNativeWidgetSiblings);
mDefaultFlags = windowFlags();
setAttribute(Qt::WA_DeleteOnClose, true);
setWindowFlags(Qt::SplashScreen);
mQuickWidget = new QQuickWidget(this);
//...
setCentralWidget(mQuickWidget);
mQuickWidget->show();
}
当初始化完成并加载另一个 qml 文件时,QML 会触发一个插槽。然后我将标志重置为默认值以从 splashscreen 返回:
void MainWindow::UpdateWindowAfterInit()
{
setWindowFlags(mDefaultFlags);
show();
}
一切都按预期进行,但是当我尝试关闭我的应用程序时,它永远不会到达末尾,main()
而如果我不应用Qt::SplashScreen
标志,它会很好地关闭。
我应该怎么做才能关闭我的应用程序?