QT/QML 从主窗口重新打开新窗口
Posted
技术标签:
【中文标题】QT/QML 从主窗口重新打开新窗口【英文标题】:QT/QML reopen New Window From Main Window 【发布时间】:2017-06-15 09:32:54 【问题描述】:我开始研究 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="";
当我点击按钮时,新窗口成功打开。但是当我关闭新窗口并试图重新打开时,它不会打开。它只是打印“Clicked”。
【问题讨论】:
我从您的示例中删除了一些杂乱无章的内容,因此您的示例开箱即用。请咨询help 以查找最小、完整和可验证示例的要求。 【参考方案1】:您的问题是,只有当您通过单击其中包含的MouseArea
关闭窗口时才清除Loader
s 源。如果你用x
-按钮关闭它,你不会清除它,所以加载器保持活动状态并且源保持不变。
要解决这个问题,您可以确保源更改,当您单击打开-Button
时,通过让
onClicked:
pageLoader.source = "" // Clearing first
pageLoader.source = "testing.qml" // Setting again
或使用Window
s closing()
-信号
onClosing: pageLoader.source = ""
【讨论】:
成功了..!!谢谢:) 如果正确,请不要忘记接受它作为正确答案。如果有帮助,请点赞。如果有什么遗漏,请在评论中指出,以便改进答案。这将确保网站的质量。以上是关于QT/QML 从主窗口重新打开新窗口的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pyqt5 和 qt 设计器从主对话框窗口打开第二个窗口