C
State QML Type
オブジェクトとプロパティの構成を定義します。詳細...
| Import Statement: | import QtQuick |
| Since: | Qt Quick Ultralite 1.0 |
プロパティ
詳細説明
状態とは、デフォルトの構成から一括変更されたセットです。
すべてのルート・アイテムには、オブジェクトとプロパティ値のデフォルト構成を定義するデフォルト状態があります。新しい状態を定義するには、states プロパティに State アイテムを追加します。こ れ ら の構成は、 た と えば、 異な る プ ロ パテ ィ 値群を適用 し た り 、 異な る ス ク リ プ ト を実行 し た り す る ために使用で き ます。
以下の例では、Rectangle を 1 つ表示します。デフォルトの状態では、矩形は黒く着色されています。ク リ ッ ク さ れた」 状態では、PropertyChanges オブジ ェ ク ト は長方形の色を赤に変えます。MouseArea 内をクリックすると、矩形の状態がデフォルトの状態と「クリックされた」状態の間で切り替わり、矩形の色が黒と赤の間で切り替わります。
import QtQuick 2.15
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" }
}
]
}デフォルトの状態は、空の文字列("")で参照されます。
ステートは一般的にトランジションと一緒に使用され、ステートの変更時にアニメーションを提供します。
注意: 同じオブジェクトの別のステート内からオブジェクトのステートを設定することはできません。
ステートの使用法、アニメーションとトランジション、ステートとトランジションも参照してください 。
プロパティのドキュメント
changes : list<Change> [default]
このプロパティは、この状態に対して適用する変更を保持します。
デフォルトでは、これらの変更はデフォルトの状態に対して適用されます。状態が他の状態を拡張する場合、変更は拡張される状態に対して適用されます。
extend : string
このプロパティは、この状態が拡張する状態を保持する。
状態が他の状態を拡張するとき、その状態のすべての変更を継承する。
拡張される状態は、拡張する状態によって指定される変更に関して、ベース状態として扱われます。
name : string
このプロパティは状態の名前を保持する。
各状態は、その項目内で一意な名前を持つべきである。
when : bool
このプロパティは、状態を適用するタイミングを保持する。
このプロパティには、状態を適用したいときにtrue と評価される式を設定する。例えば、以下のRectangle は、MouseArea が押されると、「hidden」状態になったり、「hidden」状態から外れたりする:
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 }
}
}グループ内の複数の状態が、同時にtrue と評価されるwhen 節を持つ場合、最初にマッチした状態のみが適用される。例えば、次のスニペットでは、sharedCondition がtrue になったとき、state2 ではなくstate1 が常に選択されます。
Item {
states: [
State { name: "state1"; when: sharedCondition },
State { name: "state2"; when: sharedCondition }
]
// ...
}特定の Qt ライセンスの下で利用可能です。
詳細はこちら。