Spec-Zone.ru › Qt 5.11

Тип QML State

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

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

Свойства

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

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

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

Все элементы имеют состояние по умолчанию, которое определяет стандартную конфигурацию объектов и значений свойств. Новые состояния можно определить, добавив элементы State в свойство states, чтобы позволить элементам переключаться между различными конфигурациями. Эти конфигурации, например, могут использоваться для применения разных наборов значений свойств или выполнения различных скриптов.

Следующий пример отображает один прямоугольник. В состоянии по умолчанию прямоугольник имеет черный цвет. В состоянии «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.

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

[default] changes : список<Change>

Это свойство содержит изменения, которые нужно применить для данного состояния.

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

extend : строка

Это свойство содержит состояние, которое расширяется данным состоянием.

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

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

name : строка

Это свойство содержит имя состояния.

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

when : логическое

Это свойство определяет, когда должно применяться состояние.

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

Spec-Zone.ru

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