Spec-Zone.ru › Qt 6.0

Тип QML State

Определяет конфигурации объектов и свойств. Подробнее...

Заявление об импорте: import QtQuick 2.0
  • Список всех членов, включая унаследованные члены

Свойства

  • changes : список<Изменение>
  • extend : строка
  • name : строка
  • when : логическое

Подробное описание

Состояние — это набор объединённых изменений от конфигурации по умолчанию.

Все элементы имеют состояние по умолчанию, которое определяет конфигурацию объектов и значений свойств по умолчанию. Новые состояния можно определить, добавив элементы State в свойство 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.

Документация по свойствам

[default] 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-6.0/qml-qtquick-state.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API