Spec-Zone.ru › Qt

Тип QML State

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

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

Свойства

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

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

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

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

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

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

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

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

extend : строка

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

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

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

имя : строка

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

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

когда : логическое значение

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

Это значение должно быть выражением, которое вычисляется как 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/qt-6.2/qml-qtquick-state.html

Spec-Zone.ru

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