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
}
或使用 Window
s closing()
-信号
onClosing: pageLoader.source = ""
我开始研究 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
}
或使用 Window
s closing()
-信号
onClosing: pageLoader.source = ""