Как изменить текст метки из другого файла qml? - PullRequest
0 голосов
/ 29 июня 2019

я хочу изменить текст метки, который присутствует в другом файле qml

text.qml:

import QtQuick 2.0
import QtQuick.Controls 2.3

Item {
    Rectangle {
        id: rectangle
        x: 0
        y: 0
        width: 672
        height: 480
        color: "#ffffff"

        GroupBox {
            id: groupBox
            x: 56
            y: 155
            width: 537
            height: 285
            title: qsTr("Group box")

            Label {
                id: labelname
                x: 54
                y: 27
                text: qsTr("John")
            }

            Label {
                id: labelsname2
                x: 54
                y: 62
                text: qsTr("devid")
            }
        }
    }

}

я хочу изменить labelname.text из main.qml

мой main.qml -

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.3

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    Button {
        id: button
        x: 190
        y: 127
        text: qsTr("change name")
        onClicked: {
            //i want to change text of labelname in text.qml
        }
    }
}

Я хочу отправить сигнал со страницы cpp. Сигнал содержит имя человека, и для этого имени установлено имя метки в файле text.qml

1 Ответ

1 голос
/ 29 июня 2019

Вы можете установить свойство псевдоним для чтения и записи в определенное свойство элемента вне файла:

MyForm.qml:

import QtQuick 2.0
import QtQuick.Controls 2.3

Item {
    property alias labelNameText: labelname.text

    Rectangle {
        id: rectangle
        x: 0
        y: 0
        width: 672
        height: 480
        color: "#ffffff"

        GroupBox {
            id: groupBox
            x: 56
            y: 155
            width: 537
            height: 285
            title: qsTr("Group box")

            Label {
                id: labelname
                x: 54
                y: 27
                text: qsTr("John")
            }

            Label {
                id: labelsname2
                x: 54
                y: 62
                text: qsTr("devid")
            }
        }
    }
}

Вот как использовать псевдоним:

main.qml:

import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.3

Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")

    MyForm {
        id: myForm
    }

    Button {
        id: button
        x: 190
        y: 127
        text: qsTr("change name")
        onClicked: {
            console.log('Name before change: ' + myForm.labelNameText);
            myForm.labelNameText = 'Herbert';
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...