2018年5月1日

AnimatedImage

モジュール

QtQuick 2.11

クラス継承

QQuickAnimatedImage → QQuickImage → QQuickImageBase (internal) → QQuickImplicitSizeIte (internal) → QQuickItem → QObject

プロパティー

playing: bool = true
paused: bool = false
currentFrame: int = 0
frameCount: int = 0 readonly
speed: real = 1

sourceSize: size = Qt.size(0, 0) readonly override

シグナル

frameChanged()
frameCountChanged()
pausedChanged()
playingChanged()
speedChanged()

void sourceSizeChanged() override

説明


プロパティーの説明

playing: bool

paused: bool

currentFrame: int

frameCount: int

speed: real

sourceSize: size

シグナルの説明

sourceSizeChanged()

注意


sourceSize プロパティーはオーバーライドされて読み込み専用になっている。

問題


AnimatedImage のリファレンスにはオーバーライドされた sourceSize プロパティーが記載されていない。

参考情報

anchored.qml

anchored.qml:

import QtQuick 2.10
import QtQuick.Window 2.10

Window {
    id: window

    visible: true

    minimumWidth: 300
    minimumHeight: 300

    Rectangle {
        id: movingRect

        x: 10; y: 10
        width: 150; height: 150

        color: "red"

        MouseArea {
            anchors.fill: parent

            onClicked: {
                if (movingRect.state === "") {
                    movingRect.state = "anchored";
                } else {
                    movingRect.state = "";
                }
            }
        }

        states: State {
            name: "anchored"

            AnchorChanges {
                target: movingRect
                anchors {
                    right: contentItem.right
                    bottom: contentItem.bottom
                }
            }

            PropertyChanges {
                target: movingRect
                anchors {
                    rightMargin: 10
                    bottomMargin: 10
                }
            }
        }

        transitions: Transition {
            AnchorAnimation {
                duration: 1000
            }
        }
    }
}
Rectangle をクリックすると Rectangle にアンカーを付けて右下に配置し、もう一度クリックするとアンカーを削除している。AnchorChanges ではマージン指定をできないので PropertyChanges で指定している。

AnchorChanges

モジュール

QtQuick 2.0

クラス継承

QQuickAnchorChanges → QQuickStateOperation (internal) → QObject

プロパティー

anchors: QQuickAnchorSet* = QQuickAnchorSet(nullptr) readonly constant
anchors.left: QQmlScriptString = ""
anchors.right: QQmlScriptString = ""
anchors.horizontalCenter: QQmlScriptString = ""
anchors.top: QQmlScriptString = ""
anchors.bottom: QQmlScriptString = ""
anchors.verticalCenter: QQmlScriptString = ""
anchors.baseline: QQmlScriptString = ""
target: Item = null

説明


State 内で用いてアンカーを変更する。アニメーション効果を付けるには Transition 内で AnchorAnimation を使う。

サンプルコードanchored.qml を参照。

プロパティーの説明

anchors: QQuickAnchorSet*

anchors.left: QQmlScriptString

anchors.right: QQmlScriptString

anchors.horizontalCenter: QQmlScriptString

anchors.top: QQmlScriptString

anchors.bottom: QQmlScriptString

anchors.verticalCenter: QQmlScriptString

anchors.baseline: QQmlScriptString

target: Item

注意


AnchorChanges の anchors の型は Item の anchors の型とは異なっている。マージンなどがない。

問題


anchors.left などの設定を item.Left や item.center のように書き間違えてもその値が udefined なので警告もされずに実行されてしまう。

参考情報

2018年4月30日

anchors

クラス継承

QQuickAnchors → QObject

プロパティー

left: QQuickAnchorLine = QQuickAnchorLine()
right: QQuickAnchorLine = QQuickAnchorLine()
horizontalCenter: QQuickAnchorLine = QQuickAnchorLine()
top: QQuickAnchorLine = QQuickAnchorLine()
bottom: QQuickAnchorLine = QQuickAnchorLine()
verticalCenter: QQuickAnchorLine = QQuickAnchorLine()
baseline: QQuickAnchorLine = QQuickAnchorLine()
margins: real = 0
leftMargin: real = 0
rightMargin: real = 0
horizontalCenterOffset: real = 0
topMargin: real = 0
bottomMargin: real = 0
verticalCenterOffset: real = 0
baselineOffset: real = 0
fill: Item = null
centerIn: Item = null
alignWhenCentered: bool = true

シグナル

void leftChanged()
void rightChanged()
void horizontalCenterChanged()
void topChanged()
void bottomChanged()
void verticalCenterChanged()
void baselineChanged()
void marginsChanged()
void leftMarginChanged()
void rightMarginChanged()
void horizontalCenterOffsetChanged()
void topMarginChanged()
void bottomMarginChanged()
void verticalCenterOffsetChanged()
void baselineOffsetChanged()
void fillChanged()
void centerInChanged()
void centerAlignedChanged()

説明


プロパティーの説明

left: QQuickAnchorLine

right: QQuickAnchorLine

horizontalCenter: QQuickAnchorLine

top: QQuickAnchorLine

bottom: QQuickAnchorLine

verticalCenter: QQuickAnchorLine

baseline: QQuickAnchorLine

margins: real

leftMargin: real

rightMargin: real

horizontalCenterOffset: real

topMargin: real

bottomMargin: real

verticalCenterOffset: real

baselineOffset: real

fill: Item

centerIn: Item

alignWhenCentered: bool

参考情報

SequentialAnimation

モジュール

QtQuick 2.0

クラス継承

QQuickSequentialAnimation → QQuickAnimationGroup (internal) → QQuickAbstractAnimation → QObject

プロパティー

animations: list<Animation> = [] readonly default inherited

説明


アニメーションをグループ化し直列実行する。各アニメーションは animations プロパティーに設定する。アニメーションは個別に実行の開始と終了はできずグループ単位で実行の開始と終了をする。

プロパティーの説明

animations: list<Animation>

グループ化して直列実行するアニメーション。

問題


SequentialAnimation のリファレンスに animations プロパティーが記載されていない。

参考情報