我正在使用 Qt Quick (v6.8)。我从第一个应用程序窗口打开第二个应用程序窗口。然后我关闭第一个窗口。几秒钟后,我的第二个窗口自动关闭,这不是我想要的。我希望我的新窗口一直显示,直到用户关闭它,然后才触发完整的应用程序关闭。我通过主函数中的
engine.loadFromModule("MainModule", "MainWindow");
加载在 QML 中定义的主窗口。我通过 MainWindow.qml 中的此代码加载第二个窗口:
let component = Qt.createComponent("../../BoxModule/BoxWindow.qml")
if (component.status === Component.Ready) {
let newWindow = component.createObject()
newWindow.showMaximized()
// WindowStore.secondWindow = newWindow // attempted to use singleton
mainWindow.close()
}
更明智的方法是什么?我制作了一个用来握住手柄的单例对象,认为这样可以将其保持在范围内,但我还必须需要其他东西,因为那不起作用。关闭
ApplicationWindow
是否会自动触发 QT6 中的关机?
您可以毫无问题地打开多个窗口。由于某些原因,自某些 Qt5 版本以来,将
Windows
放入根项中是不够的。曾经有效,但在 Qt6 中无效。因此,要显示窗口,需要一些简单的技巧。
QtObject {
property var wnd1: Window {
width: 640
height: 480
visible: true
title: qsTr("Window 1")
}
property var wnd2: Window {
width: 640
height: 480
visible: true
title: qsTr("Window 2")
}
Component.onCompleted: {
wnd1.show();
wnd2.show();
}
}