首页 > 解决方案 > 如何从主页文本字段为第二页文本字段设置值

问题描述

我在 main.qml 和 second.qml 页面上有文本字段。当我为 main.page 文本字段设置值时,我想为 second.page 文本字段设置相同的值。我使用别名属性但没有得到预期的输出。

ApplicationWindow {
id: windowObject
visible: true
width: 640
height: 480

StackView {
    id: stack
    initialItem: view

    Component {
        id: view

        MouseArea {
            Text {
                text: stack.depth
                anchors.centerIn: parent
            }
            onClicked: stack.push(view)
        }
    }
}

TextField{
    id: setvalue
    text:"50" // set value from main page
}

Button{
    id: clickme
    text : "ClickMe"
    x: 100
    y:200
    onClicked: {
        console.debug("New Page")
        stack.pop(StackView.Immediate)
        stack.push (Qt.resolvedUrl("Secondpage.qml"))
    } }}

第二页.qml:

Item {
    id: name
    property alias value : getvalue.text
    TextField{
        id: getvalue
        text : "" // value from main page TextField
    }
}

标签: qtqmlalias

解决方案


实际上我没有找到你在哪里使用你的第二页。让我们假设它也应该在主屏幕上。然后你的代码应该看起来像这样:

Window {
   id: windowObject
   visible: true
   width: 640
   height: 480

   TextField{
      id: setvalue
      text:"50" // set value from main page
   }

   Secondpage {
       id: _secondPageItem
       anchors.top: setvalue.bottom
       value: setvalue.text
   }
}

第二页.qml

Item { // Secondpage.qml
    id: name
    property alias value : getvalue.text
    width: getvalue.width // by default item has geometry (0, 0)
    height: getvalue.heigh

    TextField{
       id: getvalue
       text : "" // value from main page TextField
    }
}

推荐阅读