Связывание типа QML
Позволяет произвольно создавать привязки свойств. Подробнее...
| Заявление об импорте: | import QtQml 2.2 |
Свойства
Подробное описание
В QML привязки свойств приводят к зависимости между свойствами различных объектов.
Привязка к недоступному свойству
Иногда необходимо привязать свойство объекта к свойству другого объекта, который не создается напрямую QML, например, свойство класса, экспортированного в QML с помощью C++. Для этого можно использовать тип Binding, чтобы установить эту зависимость; привязка любого значения к любому свойству любого объекта.
Например, в приложении на C++, отображающем свойство «app.enteredText» в QML, можно использовать Binding для обновления свойства enteredText.
TextEdit { id: myTextField; text: "Please type here..." }
Binding { target: app; property: "enteredText"; value: myTextField.text } Когда text изменяется, свойство C++ enteredText будет обновляться автоматически.
Условные привязки
В некоторых случаях может потребоваться изменить значение свойства при выполнении определенного условия, но оставить его неизменным в противном случае. Часто это невозможно сделать с помощью прямых привязок, так как необходимо указать значения для всех возможных ветвей.
Например, фрагмент кода ниже вызывает предупреждение всякий раз, когда вы отпускаете кнопку мыши. Это связано с тем, что значение привязки не определено, когда кнопка мыши не нажата.
// produces warning: "Unable to assign [undefined] to double value" value: if (mouse.pressed) mouse.mouseX
Тип Binding может предотвратить это предупреждение.
Binding on value {
when: mouse.pressed
value: mouse.mouseX
} Тип Binding восстанавливает любые ранее установленные прямые привязки к свойству.
См. также Qt QML.
Документация по свойствам
property : строка
Свойство, которое необходимо обновить.
Это может быть групповое свойство, если выражение приводит к доступу к свойству типа значения. Например:
Item {
id: item
property rect rectangle: Qt.rect(0, 0, 200, 200)
}
Binding {
target: item
property: "rectangle.x"
value: 100
} target : Объект
Объект, который необходимо обновить.
value : любой
Значение, которое необходимо установить для объекта и свойства целевого объекта. Это может быть константа (что не очень полезно) или связанное выражение.
when : логическое
Это свойство содержит значение, когда привязка активна. Оно должно быть установлено в выражение, которое оценивается как истинное, когда вы хотите, чтобы привязка была активной.
Binding {
target: contactName; property: 'text'
value: name; when: list.ListView.isCurrentItem
} Когда привязка становится неактивной, все ранее установленные прямые привязки к свойству будут восстановлены.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qml-qtqml-binding.html