从儿童QML返回到主
Return from child qml to main one
我有几个 QML
文件,主要文件是每当我尝试从CHILD QML
返回到Main时,都会打开ApplicationWindow
,然后再次打开新窗口!我该如何阻止这样做?我认为可以在QML
中启用旗帜,但是可能还有其他方法!我尝试了QML
中的stackview
当我回到主QML
时,有什么方法可以防止打开新页面?
在主窗口中创建一个加载程序,并在需要更改页面时将每个页面调用到该加载程序中,只需更改加载程序的源
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文件:(对我setter.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()
相关文章:
- 从C++实例化QML
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 使用CMake创建QML插件
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 访问者访问变体并返回不同类型时出错
- 如何返回一个类的两个对象相加的结果
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- qml 未知方法返回类型:ArchiveFile*,即使调用了 qmlRegisterUncreatableType
- QML 函数始终返回空白
- 如何将c 返回值列表或其他复杂类型的QML列表
- 从QT C 返回自定义对象,并在QML中打印属性
- Qml和C++交互:通过指针或副本返回
- 在QML中使用c++ -slot,它返回名称空间中的类型