2016-02-01 3 views
1

У меня есть объект 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 
} 

ответ

3

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

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' 
} 
+0

Это здорово! Большое спасибо! – Luca

Смежные вопросы