Тип QML состояния
Определяет конфигурации объектов и свойств Подробнее...
| Заявление импорта: | import QtQuick 2.7 |
Свойства
Подробное описание
Состояние — это набор составных изменений от значения по умолчанию.
У всех элементов есть состояние по умолчанию, которое определяет исходную конфигурацию объектов и значений свойств. Новые состояния могут быть определены добавлением элементов состояния к свойству states, чтобы разрешить элементам переключаться между различными конфигурациями. Эти конфигурации, например, могут использоваться для применения различных наборов значений свойств или выполнения различных скриптов.
В следующем примере показан один прямоугольник Rectangle. В состоянии по умолчанию прямоугольник имеет черный цвет. В состоянии "clicked" объект PropertyChanges изменяет цвет прямоугольника на красный. Нажатие внутри MouseArea переключает состояние прямоугольника между состоянием по умолчанию и состоянием "clicked", тем самым переключая цвет прямоугольника между черным и красным.
import QtQuick 2.0
Rectangle {
id: myRect
width: 100; height: 100
color: "black"
MouseArea {
id: mouseArea
anchors.fill: parent
onClicked: myRect.state == 'clicked' ? myRect.state = "" : myRect.state = 'clicked';
}
states: [
State {
name: "clicked"
PropertyChanges { target: myRect; color: "red" }
}
]
} Обратите внимание, что состояние по умолчанию обозначается пустой строкой ("").
Состояния обычно используются вместе с переходами, чтобы обеспечить анимацию при изменении состояния.
Примечание: Установка состояния объекта из другого состояния того же объекта не разрешена.
См. также Пример состояний, Qt Quick Состояния, Переходы и Qt QML.
Документация свойств
[по умолчанию] changes : список<Изменение>
Это свойство содержит изменения, которые необходимо применить для этого состояния.
По умолчанию эти изменения применяются к состоянию по умолчанию. Если состояние наследуется от другого состояния, то изменения применяются к наследоваемому состоянию.
extend : строка
Это свойство содержит состояние, от которого наследуется это состояние.
Когда состояние наследуется от другого состояния, оно наследует все изменения этого состояния.
Наследуемое состояние рассматривается как базовое состояние в отношении изменений, указанных в наследующем состоянии.
имя : строка
Это свойство содержит имя состояния.
Каждое состояние должно иметь уникальное имя в своем элементе.
когда : булево
Это свойство содержит условие применения состояния.
Это должно быть выражение, которое вычисляется как true когда необходимо применить состояние. Например, следующий Rectangle переходит в состояние "hidden" и выходит из него, когда нажата кнопка MouseArea:
Rectangle {
id: myRect
width: 100; height: 100
color: "red"
MouseArea { id: mouseArea; anchors.fill: parent }
states: State {
name: "hidden"; when: mouseArea.pressed
PropertyChanges { target: myRect; opacity: 0 }
}
} Если несколько состояний в группе имеют when условия, которые вычисляются как true одновременно, будет применено первое соответствующее состояние. Например, в следующем фрагменте state1 всегда будет выбрано, а не state2 когда sharedCondition становится true.
Item {
states: [
State { name: "state1"; when: sharedCondition },
State { name: "state2"; when: sharedCondition }
]
// ...
}
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qml-qtquick-state.html