Связь между 2 разными объектами в 2 разных файлах QML - PullRequest
1 голос
/ 29 января 2020

У меня есть один файл main.qml, а у меня есть другой файл "example.qml". Когда я нажимаю sh кнопку из файла "example.qml", я хочу изменить текст в файле "main.qml". Я попытался определить источник текста. Я пытался отправить сигнал. Я пытался использовать загрузчик, но всегда зашел в тупик.

import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Imagine 2.12
import QtQuick.Window 2.0

//main.qml
Window {
       visible: true
       width: 1080
       height: 720
       color: "black"
       title: qsTr("MY GUI")

    Text {
       id: deneme
       x: 100
       y: 400
       color: "white"
       text: "Trial"

   }
} 
//example.qml

Item {
    id: difflock

    Rectangle{
        id: diffLockRect
        width: 1080
        height: 720
        color: "red"
        signal  mySignal

        Button{.


          onClicked: main.deneme.text = "Finally"
        }
    }
}

1 Ответ

0 голосов
/ 29 января 2020
  • Создать новый qml с именем Example.qml (первая буква должна быть заглавной)
  • Определить в main.qml
  • Example.qml может обращаться к объектам в main.qml

main.qml

import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Imagine 2.12
import QtQuick.Window 2.0
    Window {
           visible: true
           width: 1080
           height: 720
           color: "black"
           title: qsTr("MY GUI")

           Example{id:rfrnc} // You can also reach the other qml objects by using this id

        Text {
           id: deneme
           x: 100
           y: 400
           color: "white"
           text: "Trial"

       }
    }

Example.qml

import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import QtQuick.Controls.Imagine 2.12
import QtQuick.Window 2.0

Item {
    id: difflock

    Rectangle{
        id: diffLockRect
        width: 1080
        height: 720
        color: "red"
        signal  mySignal

        Button{

onClicked: deneme.text = "Finally"
        }
    }
}
...