Spec-Zone.ru › Qt 6.1

Тип QML PropertyAction

Определяет непосредственные изменения свойств во время анимации. Подробнее...

Заявление об импорте: import QtQuick 2.1
Наследует:

Animation

  • Список всех членов, включая наследуемые

Свойства

  • exclude : список<Объект>
  • properties : строка
  • property : строка
  • target : Объект
  • targets : список<Объект>
  • value : любой

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

PropertyAction используется для определения непосредственного изменения свойства во время анимации. Изменение свойства не анимируется.

Это полезно для задания значений свойств без анимации во время анимации.

Например, вот SequentialAnimation, который устанавливает свойство opacity изображения в .5, анимирует ширину изображения, затем устанавливает opacity обратно в 1:

SequentialAnimation {
    PropertyAction { target: img; property: "opacity"; value: .5 }
    NumberAnimation { target: img; property: "width"; to: 300; duration: 1000 }
    PropertyAction { target: img; property: "opacity"; value: 1 }
}

PropertyAction также полезен для задания точной точки, в которой должно произойти изменение свойства во время перехода. Например, если PropertyChanges использовался в состоянии для поворота элемента вокруг определенного transformOrigin, это можно реализовать так:

Item {
    width: 400; height: 400

    Rectangle {
        id: rect
        width: 200; height: 100
        color: "red"

        states: State {
            name: "rotated"
            PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight }
        }

        transitions: Transition {
            RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
        }

        MouseArea {
            anchors.fill: parent
            onClicked: rect.state = "rotated"
        }
    }
}

Однако, с этим кодом transformOrigin устанавливается после анимации, так как состояние используется для определения значений в конце перехода. Анимация повернётся по умолчанию transformOrigin, а затем перепрыгнет на Item.BottomRight. Чтобы исправить это, вставьте PropertyAction перед началом RotationAnimation:

transitions: Transition {
    SequentialAnimation {
        PropertyAction { target: rect; property: "transformOrigin" }
        RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
    }
}

Это немедленно установит свойство transformOrigin в значение, определенное в конечном состоянии перехода (т.е. значение, определенное в объекте PropertyAction), так что анимация поворота начнётся с правильного transform origin.

См. также Анимации и переходы в Qt Quick и Qt QML.

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

properties : строка

Эти свойства определяют элементы и их свойства, которые затронуты этим действием.

Подробности о том, как эти свойства интерпретируются в разных ситуациях, описаны в соответствующей документации PropertyAnimation.

См. также exclude.

exclude : список<Объект>

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

См. также targets.

value : любое

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

Если PropertyAction определен в переходе или поведении, это значение по умолчанию устанавливается в значение, определенное в конечном состоянии перехода, или значение изменения свойства, которое вызвало поведение.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qml-qtquick-propertyaction.html

Spec-Zone.ru

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