2014-10-31 3 views
1

Основная цель: иметь свойство контекста, заданное элементом, определенным в файле QML (скажем, file_1.qml) и к которому будет доступен доступ во время выполнения другим элементом, определенным в другом файле QML file_2.qml).Изменение свойств контекста из QML-кода

Вопрос: Можно ли установить новое свойство контекста в file_1.qml, а затем прочитать это свойство в file_2.qml?

(редактировать)

Например, мне нужно использовать значение из file_2.qml в file_1.qml:

file_1.qml:

(...) 
UiController.but_generate__onClicked(
    getContextProperty("sbx_money_quantity_value"), 
    cal_daysoff.visibleMonth) 
(...) 

file_2.qml:

(...) 
SpinBox { 
     id: sbx_money_quantity 
     objectName: "sbx_money_quantity" 
     Layout.fillWidth: true 
     minimumValue: 0 
     maximumValue: 100000 
     value: 20000 


     onChanged: setContextProperty("sbx_money_quantity_value",value) 
    } 
(...) 

Спасибо!

+0

Можете ли вы показать пример кода, который описываетпроблема? – folibis

+0

Я добавил пример. благодаря – pedromateo

ответ

1

Вы не можете получить доступ к элементу в каком-либо файле из другого источника из-за ограничения объема. Таким образом, вам просто нужен какой-либо прокси-корневой объект или может быть какой-то глобальный одноэлементный объект или просто передать ссылку на один объект другому. Например:

File1.qml

Item { 
    property someValue: 1 
} 

File2.qml

Item { 
    property variant ref: null 
    onChanged: ref.someValue = 2; 
} 

main.qml

File1 { 
    item: file1 
} 
File2 { 
    item: file2 
    ref: file1 
} 
Смежные вопросы