qml怎么点击button跳出另一个qml界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qml怎么点击button跳出另一个qml界面相关的知识,希望对你有一定的参考价值。
参考技术A 你指的是新的窗口么?如果是新的窗口,用 window {} 不懂可以帮助文档
如果是当前窗口下,可以用 visible :false,点击后 visible:true 就好。注意 z:本回答被提问者和网友采纳
QML 将 QtObject 从一个 qml 传递到另一个
【中文标题】QML 将 QtObject 从一个 qml 传递到另一个【英文标题】:QML pass QtObject from one qml to another 【发布时间】:2017-11-20 01:15:01 【问题描述】:一段时间以来,我一直在尝试解决这个问题,并想出了一些技巧,但似乎没有一个是正确的方法。希望这是有道理的。假设我有三个 qml 文件。
第一个 QML:
...
ListView
id: patientList
model: patientModel
delegate: E3DPatientListItem
onClicked:
if (patientList.currentIndex !== index)
patientList.currentIndex = index
detailStackView.push("DetailPanel.qml",
"view": view, "ptInfo": model )
...
详细信息面板:
...
Page
property QtObject ptInfo
Timeline
ptInfo: ptInfo // <- how do I pass this to Timeline?
...
时间线.qml
...
Item
property QtObject ptInfo // <- always null :(
...
【问题讨论】:
时间线 ptInfo: parent.ptInfo 呢?或 Page 属性别名 ptInfo:timeline.ptInfo ? 我以为我已经尝试了所有方法,但Timeline ptInfo: parent.ptInfo
确实有效!非常感谢。
【参考方案1】:
...
Page
property QtObject ptInfo
Timeline
ptInfo: ptInfo // <- how do I pass this to Timeline?
...
你认为ptInfo: ptInfo
正在实现什么?您正在将该属性绑定到它自己的标识符。
也许尝试不使用相同的标识符以避免阴影,或者给出Page
和id
,然后是ptInfo: pageid.ptInfo
。只要对象的父属性暴露,parent.ptInfo
也可以工作,请记住 QtObject
不。
但是,您实际上并不需要在Timeline.qml
中具有属性QtObject ptInfo
,只要始终在页面内实例化时间线,由于动态范围,您可以直接从时间线内部访问ptInfo
。请注意,动态范围属性仅适用于在特定 qml 文件的根元素中定义的属性:
// Obj1.qml
Item
property int test: 7
Obj2
// Obj2.qml
Item
Component.onCompleted: console.log(test) // it will work
【讨论】:
以上是关于qml怎么点击button跳出另一个qml界面的主要内容,如果未能解决你的问题,请参考以下文章