QT/QML 从主要 Window 重新打开新 Window

QT/QML reopen New Window From Main Window

我开始研究 QT/QML,PyQt 桌面应用程序。我有一些 Qt/QML 和所有的基本知识。

我正在尝试修改一个已经存在的桌面应用程序。

这是 我在打开另一个 Window.

的应用程序的 Main Window 中添加了一个按钮

main.qml

Button {
    text: "Open Window"

    Loader{ id: pageLoader }

    onClicked: {
        console.log("Clicked")
        pageLoader.source = "testing.qml"
    }
}

testing.qml

import QtQuick 2.2
import QtQuick.Window 2.2

Window {
    id: win1
    width: 1000;
    height: 1000;
    visible: true;
    visibility: "Maximized"
    color: "#363636";
    title: "First Window";
    Text {
        anchors.centerIn: parent
        text: "Page 1"
    }
    MouseArea{
        anchors.fill: parent;
        onClicked: pageLoader.source="";
    }
}

当我点击按钮时,新 Window 已成功打开。但是当我关闭新 Window 并尝试重新打开时,它不会打开。它只是打印 "Clicked".

您的问题是,只有当您通过单击 MouseArea 包含的 window 关闭 window 时,您才能清除 Loader 的源代码。如果您使用 x 按钮关闭它,您不会清除它,因此加载器保持活动状态并且源保持不变。

要解决这个问题,您可以通过让

onClicked: {
    pageLoader.source = ""  // Clearing first
    pageLoader.source = "testing.qml" // Setting again
}

或使用 Windows closing()-信号

onClosing: pageLoader.source = ""