首页 文章

QT / QML从主窗口重新打开新窗口

提问于
浏览
1

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

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

这是我在应用程序的主窗口中添加一个按钮打开另一个窗口 .

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="";
    }
}

当我点击按钮时,新窗口成功打开 . 但当我关闭新窗口并尝试重新打开时,它将无法打开 . 它只是打印“点击” .

1 回答

  • 0

    您的问题是,只有当您通过单击它包含的 MouseArea 来关闭窗口时,才会清除_2819545的源 . 如果您使用 x 按钮关闭它,则不会清除它,因此加载程序保持活动状态且源保持不变 .

    要解决这个问题,你可以确保,当你点击open- Button 时,源更改了

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

    或者使用 Window s closing() -signal

    onClosing: pageLoader.source = ""
    

相关问题