Spec-Zone.ru › Qt 5.14

Тип QML State

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

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

Свойства

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

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

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

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

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

[по умолчанию] changes : список<Изменение>

Это свойство хранит изменения, которые необходимо применить для этого состояния

По умолчанию эти изменения применяются к состоянию по умолчанию. Если состояние расширяет другое состояние, то изменения применяются к расширяемому состоянию.

extend : строка

Это свойство хранит состояние, которое расширяет это состояние.

Когда состояние расширяет другое состояние, оно наследует все изменения этого состояния.

Расширяемое состояние рассматривается как базовое состояние по отношению к изменениям, указанным расширяющим состоянием.

name : строка

Это свойство хранит имя состояния.

Каждое состояние должно иметь уникальное имя в пределах своего элемента.

when : булево

Это свойство хранит условие применения состояния.

Это должно быть выражение, которое оценивается как true при желании применить состояние. Например, следующий прямоугольник Rectangle входит и выходит из состояния "скрытый" при нажатии на 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.14/qml-qtquick-state.html

Spec-Zone.ru

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