Невозможно получить доступ к элементам контейнера

У меня есть объект QML следующим образом:

// File: ControlView.qml
Rectangle {
    id: view
    property bool darkBackground: false

    Text {
        id: textSingleton
    }

    SoundEffect {
        id: playCalSound
        source: "qrc:/sound/calender_time_camera.wav"
    }
}

У меня есть еще один элемент управления, и моя проблема в том, что я не могу получить доступ к playCalSound или же textSingleton элементы.

// File: MyControl.qml
ControlView {
   ....
   playCalSound.play() // playCalSound is not defined
   textSingleton.font.pixelSize // textSingleton is not defined

   view.textSingleton // view is not defined
}

1 ответ

Решение

Вы должны определить свойства для объектов, которые вы хотите использовать вне файла. Попробуй это

Rectangle {
    id: view
    property bool darkBackground: false
    property var effect: playCalSound
    property alias singletext: textSingletone.text

    Text {
        id: textSingleton
    }

    SoundEffect {
        id: playCalSound
        source: "qrc:/sound/calender_time_camera.wav"
    }
}

..............


ControlView {
   ....
   Component.onComplited: effect.play()

   singletext: 'some text'
}
Другие вопросы по тегам