Тип QML состояния
Определяет конфигурации объектов и свойств. Подробнее...
| Заявление об импорте: | import QtQuick 2.15 |
Свойства
Подробное описание
Состояние — это набор обработанных изменений от исходной конфигурации.
Все элементы имеют состояние по умолчанию, которое определяет исходную конфигурацию объектов и значений свойств. Новые состояния могут быть определены путем добавления элементов состояния в свойство states для переключения элементов между различными конфигурациями. Эти конфигурации могут, например, использоваться для применения различных наборов значений свойств или выполнения различных скриптов.
Следующий пример отображает один прямоугольник. В состоянии по умолчанию прямоугольник окрашен в черный цвет. В состоянии «нажатие» объект PropertyChanges изменяет цвет прямоугольника на красный. Щелчок внутри области мыши переключает состояние прямоугольника между состоянием по умолчанию и состоянием «нажатие», тем самым переключая цвет прямоугольника между черным и красным.
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 : строка
Это свойство содержит состояние, которое расширяет это состояние.
Когда состояние расширяет другое состояние, оно наследует все изменения этого состояния.
Расширяемое состояние рассматривается как базовое состояние относительно изменений, указанных расширяющим состоянием.
name : строка
Это свойство содержит имя состояния.
Каждое состояние должно иметь уникальное имя в пределах своего элемента.
when : логическое
Это свойство указывает, когда должно быть применено состояние.
Это свойство должно быть установлено в выражение, которое оценивается как true когда требуется применение состояния. Например, следующий прямоугольник переходит в состояние «скрытый» и из него, когда область мыши нажата:
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.15/qml-qtquick-state.html