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 正在实现什么?您正在将该属性绑定到它自己的标识符。

也许尝试不使用相同的标识符以避免阴影,或者给出Pageid,然后是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界面的主要内容,如果未能解决你的问题,请参考以下文章

等待QML界面中两个按钮被点击

QML和C++混合编程实现以下功能:

Qt5 - QML:如何正确连接 ProgressBar 和 Button 以进行长时间运行的循环计算

Qt和Qt Quick QML,

Qml 透明窗口,设置不规则等透明窗口,鼠标可穿透到桌面

Qml 透明窗口,设置不规则等透明窗口,鼠标可穿透到桌面