如何从另一个Qml中获取Qml中的属性值?

时间:2017-10-05 16:00:36

标签: qt qml

我知道这个问题被问过这么多次,但答案都没有帮助我。我有两个QML文件。第一个Qml文件中有一个地图,当我按下地图时,它会打开一个包含以下代码的窗口:

MouseArea{
    id: mouseArea
    property var positionRoot: map.toCoordinate(Qt.point(mouseX, mouseY))
    anchors.fill: parent
    onClicked: {
            var component = Qt.createComponent("addAttribute.qml")
            if (component.status === Component.Ready) {
            var dialog = component.createObject(parent,{popupType: 1})
            dialog.show()
       }
    }
}

该窗口有labeltextfieldbutton。我想要的是获取我在第一个QML文件中创建的property(positionRoot)的值。我怎么可能这样做?

1 个答案:

答案 0 :(得分:0)

感谢@folibis,它有效。这是需要添加的代码。

MouseArea{
        id: mouseArea
        property var positionRoot: map.toCoordinate(Qt.point(mouseX, mouseY))
        anchors.fill: parent
        onClicked: {
                var component = Qt.createComponent("addAttribute.qml")
                if (component.status === Component.Ready) {
                var dialog = component.createObject(parent,{popupType: 1})
                dialog.sqlPosition = positionRoot
                dialog.show()
           }
        }
    }

在我的第二个窗口中,我只创建了一个名为sqlPosition的新属性。例如:

Window {
        id: secondWindow
        property var sqlPosition
    }