我有几个QML
文件,主文件是当我尝试从子级ApplicationWindow
返回主文件时打开QML
的文件,再次打开新窗口!
如何防止这样做?
我以为在子QML
中启用标志,但是可能还有其他方法!
我在stackview
QML
QML
时,有什么方法可以阻止打开新页面吗?答案 0 :(得分:0)
在主窗口中创建一个加载器,并在需要更改页面时调用该加载器中的每个页面,只需更改加载器的源代码
Window {
Loader{
id:myLoader
anchors.fill: parent
source: "LoginPage.qml"
}
Connections{
target: myLoader.item
onBack_clicked:{
loginid = ""
myLoader.source = "LoginPage.qml"
}
onSetting_clicked:{
myLoader.source = "Setting.qml"
}
}
}
和子qml文件:(对我来说Setting.qml)
Item {
signal back_clicked()
Button {
id: button1
anchors.right: parent.right
anchors.rightMargin: 15
onClicked: {
back_clicked()
}
}
}
但是如果您不想破坏旧页面,请使用SwipeView或StackView:
SwipeView {
id: swipeView
clip: true
currentIndex: 0
Item{
id:firstPage
clip:true
//your page
}
Item{
id:secondPage
clip:true
//your page
}
}
要更改页面,只需更改currentIndex
swipeView.currentIndex = 1
更新:
StackView {
id: stackView
initialItem: one
}
Component {
id: one
Item{//your first page }
}
Component {
id: two
Item{//your second page }
}
并推送您的页面:
stackView.push({ item: two})
//or
stackView.push("MySecondView.qml")
要回到旧页面或主页,只需弹出它即可:
stackView.pop()