如何在 QTQuick 6.8 中打开第二个主窗口而不关闭应用程序?

问题描述 投票:0回答:1

我正在使用 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 中的关机?

qt qml qt-quick qt6
1个回答
0
投票

您可以毫无问题地打开多个窗口。由于某些原因,自某些 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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.