State QML Type
オブジェクトとプロパティの構成を定義します。詳細...
Import Statement: | import QtQuick |
プロパティ
詳細説明
状態とは、デフォルトの構成から一括して変更されたものです。
すべてのアイテムは、オブジェクトとプロパティ値のデフォルト構成を定義するデフォルトの状態を持ちます。新しい状態を定義するには、states プロパティに State アイテムを追加します。こ れ ら の構成は、 た と えば、 異な る プ ロ パテ ィ 値群を適用 し た り 異な る ス ク リ プ ト を実行 し た り す る ために用い ら れます。
以下の例では、Rectangle を 1 つ表示します。デフォルトの状態では、矩形は黒く着色されています。ク リ ッ ク さ れた」 状態では、PropertyChanges オブジ ェ ク ト は長方形の色を赤に変えます。MouseArea 内をクリックすると、矩形の状態がデフォルトの状態と「クリックされた」状態の間で切り替わり、矩形の色が黒と赤の間で切り替わります。
import QtQuick 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、Transitions、Qt Qmlも参照してください 。
プロパティの説明
changes : list<Change> |
このプロパティは、このステートに対して適用する変更を保持します。
デフォルトでは、これらの変更はデフォルトの状態に対して適用されます。状態が他の状態を拡張している場合、変更は拡張されている状態に対して適用されます。
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
が常に選択されます。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。