StackView QML Type
スタックベースのナビゲーションモデルを提供します。詳細...
Import Statement: | import QtQuick.Controls |
Inherits: |
プロパティ
- busy : bool
- currentItem : Item
- depth : int
- empty : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
- initialItem : var
- popEnter : Transition
- popExit : Transition
- pushEnter : Transition
- pushExit : Transition
- replaceEnter : Transition
- replaceExit : Transition
付属物件
- index : int
- status : enumeration
- view : StackView
- visible : bool
(since QtQuick.Controls 2.2 (Qt 5.9))
付属信号
- activated()
(since QtQuick.Controls 2.1 (Qt 5.8))
- activating()
(since QtQuick.Controls 2.1 (Qt 5.8))
- deactivated()
(since QtQuick.Controls 2.1 (Qt 5.8))
- deactivating()
(since QtQuick.Controls 2.1 (Qt 5.8))
- removed()
(since QtQuick.Controls 2.1 (Qt 5.8))
方法
- void clear(transition)
- Item find(callback, behavior)
- Item get(index, behavior)
- Item pop(item, operation)
- Item popCurrentItem(operation)
(since 6.7)
- Item popToIndex(index, operation)
(since 6.7)
- Item popToItem(item, operation)
(since 6.7)
- Item push(item, properties, operation)
- Item pushItem(item, properties, operation)
(since 6.7)
- Item pushItem(component, properties, operation)
(since 6.7)
- Item pushItem(url, properties, operation)
(since 6.7)
- Item pushItems(items, operation)
(since 6.7)
- Item replace(target, item, properties, operation)
- Item replaceCurrentItem(items, operation)
(since 6.7)
- Item replaceCurrentItem(item, properties, operation)
(since 6.7)
- Item replaceCurrentItem(component, properties, operation)
(since 6.7)
- Item replaceCurrentItem(url, properties, operation)
(since 6.7)
詳細説明
StackViewは、相互にリンクされた情報ページのセットで使用できます。例えば、電子メールアプリケーションで、最新の電子メールのリスト、特定の電子メールの表示、添付ファイルのリスト/表示を別々のビューで行うことができます。電子メールリストビューは、ユーザーが電子メールを開くとスタックにプッシュされ、戻ることを選択するとポップアウトされます。
次のスニペットは、mainView
、関連するボタンをクリックするとスタックにプッシュされ、スタックからポップアウトされるというシンプルな使用例を示しています:
ApplicationWindow { title: qsTr("Hello World") width: 640 height: 480 visible: true StackView { id: stack initialItem: mainView anchors.fill: parent } Component { id: mainView Row { spacing: 10 Button { text: "Push" onClicked: stack.push(mainView) } Button { text: "Pop" enabled: stack.depth > 1 onClicked: stack.pop() } Text { text: stack.depth } } } }
アプリケーションでStackViewを使用する
アプリケーションでStackViewを使用することは、ウィンドウの子として追加するのと同じくらい簡単です。スタックは通常ウィンドウの端に固定されますが、上部や下部ではステータスバーや他の同様のUIコンポーネントに固定されます。スタックは、そのナビゲーション メソッドを呼び出すことで使用できます。スタックビューに最初に表示される項目は、initialItem に割り当てられた項目です。initialItem が設定されていない場合は、一番上の項目です。
基本的なナビゲーション
push ()、pop ()、replace ()。これらは古典的なスタック操作に対応しており、"push "はスタックの一番上にアイテムを追加し、"pop "はスタックから一番上のアイテムを削除します。"replace "はpopの後にpushを行うようなもので、一番上のアイテムを新しいアイテムで置き換えます。スタックの一番上のアイテムは、currently 画面上に表示されているアイテムに対応する。論理的には、"push "は前方、つまりアプリケーションUIの奥に移動し、"pop "は後方に移動し、"replace "はcurrentItem を置き換えます。
アイテムのプッシュ
次のアニメーションでは、push() 関数を使用して、3 つのLabel コントロールをスタックビューにプッシュしています:
スタックには次のアイテムが含まれます:[A, B, C]
.
注意: スタックが空の場合、push ()操作では、遷移するものがないため、遷移アニメーションはありません(通常、アプリケーションの起動時)。
アイテムのポップ
pop() を呼び出すと、スタックの一番上のアイテムが削除されます:
スタックには次の項目が含まれる。[A, B]
.
ポップによるアイテムの巻き戻し
スタックを一段階以上さかのぼる必要がある場合がある。例えば、アプリケーションの "main" アイテムやある種のセクション・アイテムに戻る場合です。このような場合、pop() のパラメータとして項目を指定することができます。これは「巻き戻し」操作と呼ばれ、スタックは指定された項目まで巻き戻される。アイテムが見つからない場合、スタックは1つのアイテムが残るまで巻き戻され、それがcurrentItem になります。明示的にスタックの一番下まで巻き戻すには、pop (null)を使うことをお勧めしますが、存在しないアイテムでもかまいません。
次のアニメーションでは、pop(null)
を呼び出すことで、スタックを最初のアイテムまでアンワインドしている:
スタックには、[A]
というアイテムがひとつ入っています。
アイテムの置き換え
次のアニメーションでは、D
で一番上のアイテムをreplace している:
スタックには次のアイテムが含まれます:[A, B, D]
.
ディープリンク
ディープリンクとは、アプリケーションを特定の状態に起動することです。例えば、新聞アプリケーションは、一番上のアイテムをバイパスして、特定の記事を表示するように起動することができます。StackViewの観点では、ディープリンクはスタックの状態を変更する能力を意味し、スタックの最上位にアイテムのセットをプッシュしたり、スタックを所定の状態に完全にリセットしたりすることが可能です。
StackViewのディープリンクのためのAPIは、基本的なナビゲーションと同じです。単一のアイテムの代わりに配列をプッシュすると、その配列内のすべてのアイテムがスタックに追加されます。しかし、トランジションアニメーションは、配列の最後のアイテムにのみ適用されます。pushつまり、プッシュされたものはすべてスタックに追加される。
注意: 配列の最後の項目だけが読み込まれる。残りの項目がロードされるのは、その後のpop呼び出しや、get ()を使って項目を取得する要求があったときなど、必要なときだけである。
スタック[A,B,C]を考えると、次のようになる:
- push([D, E, F]) => [A, B, C, D, E, F] - CとFの間の "push "トランジションアニメーション
- replace([D, E, F]) => [A, B, D, E, F] - CとFの間のトランジション・アニメーションを「置き換える」。
- clear() の後にpush([D, E, F]) => [D, E, F] - スタックが空だったため、アイテムをプッシュするトランジションアニメーションはありません。
アイテムの検索
アプリケーションが参照を持っていないアイテムは、find ()を呼び出すこと で見つけることができる。このメソッドにはコールバック関数が必要です。コールバック関数は、一致するアイテムが見つかるまで、スタック内の各アイテムに対して(先頭から)呼び出されます。コールバック関数がtrue
を返した場合、find() は停止し、一致する項目を返す。そうでない場合はnull
が返される。
以下のコードでは、"order_id" という名前のアイテムをスタックから探し、そのアイテムまで巻き戻しています。
stackView.pop(stackView.find(function(item) { return item.name == "order_id"; }));
get(index)を使っても、スタック内のアイテムにたどり着くことができる。
previousItem = stackView.get(myItem.StackView.index - 1));
トランジション
プッシュやポップの操作ごとに、アイテムに入るときとアイテムから出るときに異なるトランジション・アニメーションが適用されます。これらのアニメーションは、入るアイテムがどのようにアニメーションし、出るアイテムがどのようにアニメーションするかを定義します。アニメーションは、StackView のpushEnter,pushExit,popEnter,popExit,replaceEnter,replaceExit プロパティに異なるTransitions を割り当てることでカスタマイズできます。
注意: トランジション・アニメーションはお互いのトランジション動作に影響を与えます。一方のアニメーションをカスタマイズして、もう一方のアニメーションを残すと、予期しない結果が生じる可能性があります。
次のスニペットは、プッシュとポップ操作のための単純なフェード遷移を定義しています:
StackView { id: stackview anchors.fill: parent pushEnter: Transition { PropertyAnimation { property: "opacity" from: 0 to:1 duration: 200 } } pushExit: Transition { PropertyAnimation { property: "opacity" from: 1 to:0 duration: 200 } } popEnter: Transition { PropertyAnimation { property: "opacity" from: 0 to:1 duration: 200 } } popExit: Transition { PropertyAnimation { property: "opacity" from: 1 to:0 duration: 200 } } }
注: StackViewに追加されたアイテムにアンカーを使用することはサポートされていません。通常、push、pop、replaceトランジションは位置をアニメーション化しますが、アンカーが適用されている場合は不可能です。これはアイテムのルートにのみ適用されることに注意してください。子アイテムにアンカーを使用すると、期待通りに動作します。
アイテムの所有権
StackViewは自身が作成したアイテムの所有権のみを取ります。つまり、StackViewにプッシュされたアイテムがStackViewによって破棄されることはありません。Components またはURLs からStackViewが作成したアイテムだけが、StackViewによって破棄されます。StackViewが または から作成したアイテムだけがStackViewによって破棄されます。これを説明するために、以下の例のメッセージは、アイテムがスタックからポップされたときではなく、StackViewが破棄されたときにのみ表示されます:
Component { id: itemComponent Item { Component.onDestruction: print("Destroying second item") } } StackView { initialItem: Item { Component.onDestruction: print("Destroying initial item") } Component.onCompleted: push(itemComponent.createObject(window)) }
ただし、以下の例でURLとComponentから作成されたアイテムは、どちらもStackViewからポップオフされると、StackViewによって破棄されます:
Component { id: itemComponent Item { Component.onDestruction: print("Destroying second item") } } StackView { initialItem: "Item1.qml" Component.onCompleted: push(itemComponent) }
サイズ
StackViewは、プッシュされたアイテムから暗黙のサイズを継承しません。これは、例えば、Dialog のcontentItem として使用すると、期待通りに動作しないことを意味します:
このような状況でStackViewが確実にサイズを持つようにするには、いくつかの方法があります:
- implicitWidth 、implicitHeight をStackView自体に設定する。
- Rectangle にimplicitWidth とimplicitHeight を設定する。
- ダイアログにcontentWidth とcontentHeight を設定する。
- ダイアログにサイズを与える。
Qt Quick ControlsのStackViewのカスタマイズ、StackViewでのナビゲーション、ナビゲーションコントロール、コンテナコントロール、フォーカス管理も参照してください 。
プロパティ ドキュメント
busy : bool |
このプロパティは、トランジションが実行中であるかどうかを保持します。
currentItem : Item |
このプロパティは、スタックの現在の最上位のアイテムを保持します。
depth : int |
このプロパティは、スタックに現在プッシュされているアイテムの数を保持します。
empty : bool |
initialItem : var |
popEnter : Transition |
このプロパティは、他のアイテムがスタックからポップ・オフされたときに、スタックに入るアイテムに適用される遷移を保持します。
StackViewのカスタマイズも参照してください 。
popExit : Transition |
このプロパティは、アイテムがスタックからポップ・オフされた時に、スタックから出るアイテムに適用されるトランジションを保持します。
StackViewのカスタマイズも参照して ください。
pushEnter : Transition |
このプロパティは、アイテムがスタックにプッシュされた時、スタックに入るアイテムに適用されるトランジションを保持します。
StackViewのカスタマイズも参照して ください。
pushExit : Transition |
このプロパティは、他のアイテムがスタックにプッシュされた時、スタックから出るアイテムに適用されるトランジションを保持します。
StackViewのカスタマイズも参照して ください。
replaceEnter : Transition |
このプロパティは、他のアイテムがそのアイテムに置き換えられた時にスタックに入るアイテムに適用されるトランジションを保持します。
StackViewのカスタマイズも参照して ください。
replaceExit : Transition |
このプロパティは、スタックから出るアイテムが他のアイテムに置き換えられた時に、そのアイテムに適用されるトランジションを保持します。
StackViewのカスタマイズも参照して ください。
Attached プロパティの説明
StackView.index : int |
この Attached プロパティは、アタッチされているアイテムのスタックインデックスを保持し、アイテムがスタックにない場合は、-1
。
StackView.status : enumeration |
この Attached プロパティは、アタッチされているアイテムのスタックステータスを保持し、アイテムがスタックにない場合は、StackView.Inactive
。
利用可能な値:
定数 | 説明 |
---|---|
StackView.Inactive | アイテムは非アクティブです(またはスタックにありません)。 |
StackView.Deactivating | アイテムは非アクティブ化(ポップオフ)されています。 |
StackView.Activating | アイテムがアクティブになっている(カレントアイテムになっている)。 |
StackView.Active | アイテムがアクティブ、つまりカレントアイテムである。 |
StackView.view : StackView |
このアタッチされたプロパティは、アタッチされたアイテムのスタックビューを保持し、アイテムがスタックにない場合は、null
。
StackView.visible : bool |
このアタッチされたプロパティは、それがアタッチされているアイテムの可視性を保持する。値はItem::visible の値に従う。
デフォルトでは、StackView は、入力トランジションが始まると入力アイテムを表示し、終了トランジションが終わると出力アイテムを非表示にします。このプロパティを明示的に設定することで、デフォルトの動作を上書きすることができ、最上位のアイテムより下にあるアイテムを表示し続けることが可能になります。
注意: ほとんどのスタイルのデフォルトのトランジションは、ビューの外に出ていくアイテムをスライドさせ、その不透明度をアニメーション化することがあります。アイテムの完全なスタックを表示し続けるには、transitions をカスタマイズして、下のアイテムが見えるようにすることを検討してください。
StackView { id: stackView property real offset: 10 width: 100; height: 100 initialItem: Component { id: page Rectangle { property real pos: StackView.index * stackView.offset property real hue: Math.random() color: Qt.hsla(hue, 0.5, 0.8, 0.6) border.color: Qt.hsla(hue, 0.5, 0.5, 0.9) StackView.visible: true } } pushEnter: Transition { id: pushEnter ParallelAnimation { PropertyAction { property: "x"; value: pushEnter.ViewTransition.item.pos } NumberAnimation { properties: "y"; from: pushEnter.ViewTransition.item.pos + stackView.offset; to: pushEnter.ViewTransition.item.pos; duration: 400; easing.type: Easing.OutCubic } NumberAnimation { property: "opacity"; from: 0; to: 1; duration: 400; easing.type: Easing.OutCubic } } } popExit: Transition { id: popExit ParallelAnimation { PropertyAction { property: "x"; value: popExit.ViewTransition.item.pos } NumberAnimation { properties: "y"; from: popExit.ViewTransition.item.pos; to: popExit.ViewTransition.item.pos + stackView.offset; duration: 400; easing.type: Easing.OutCubic } NumberAnimation { property: "opacity"; from: 1; to: 0; duration: 400; easing.type: Easing.OutCubic } } } pushExit: Transition { id: pushExit PropertyAction { property: "x"; value: pushExit.ViewTransition.item.pos } PropertyAction { property: "y"; value: pushExit.ViewTransition.item.pos } } popEnter: Transition { id: popEnter PropertyAction { property: "x"; value: popEnter.ViewTransition.item.pos } PropertyAction { property: "y"; value: popEnter.ViewTransition.item.pos } } }
このプロパティは QtQuick.Controls 2.2 (Qt 5.9) で導入されました。
付属シグナルのドキュメント
|
このアタッチドシグナルは、アタッチされているアイテムがスタック内でアクティブになったときに発せられる。
注意: 対応するハンドラはonActivated
です。
このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。
statusも参照してください 。
|
このアタッチドシグナルは、それがアタッチされているアイテムがスタック内でアクティベートされる過程にあるときに発せられる。
注: 対応するハンドラはonActivating
です。
このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。
statusも参照してください 。
|
このアタッチシグナルは、アタッチされているアイテムがスタックで非アクティブになったときに発せられる。
注意: 対応するハンドラはonDeactivated
です。
このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。
statusも参照してください 。
|
このアタッチドシグナルは、それがアタッチされているアイテムがスタック内でデティベートされる過程にあるときに発せられる。
注意: 対応するハンドラはonDeactivating
です。
このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。
statusも参照してください 。
|
メソッドの説明
void clear(transition) |
スタックからすべてのアイテムを削除します。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
QtQuick.Controls 2.3 以降では、オプションでtransition を指定できます。サポートされるトランジション
定数 | 説明 |
---|---|
StackView.Immediate | 遷移なしで直ちにスタックをクリアします(デフォルト)。 |
StackView.PushTransition | プッシュ遷移でスタックをクリアします。 |
StackView.ReplaceTransition | replace 遷移でスタックをクリアします。 |
StackView.PopTransition | ポップ遷移でスタックをクリアします。 |
Item find(callback, behavior) |
スタック内の特定の項目を検索します。コールバック関数がtrue
を返すまで、callback 関数がスタック内の各項目に対して(引数として項目とインデックスを指定して)呼び出されます。戻り値は見つかったアイテムです。例えば
stackView.find(function(item, index) { return item.isTheOne })
サポートされるbehavior 値:
定数 | 説明 |
---|---|
StackView.DontLoad | ロードされていないアイテムはスキップされます(コールバック関数は呼び出されません)。 |
StackView.ForceLoad | ロードされていないアイテムは強制的にロードされます。 |
Item get(index, behavior) |
スタックの位置index にあるアイテム、またはインデックスが範囲外の場合はnull
を返します。
サポートされるbehavior の値:
定数 | 説明 |
---|---|
StackView.DontLoad | 項目は強制的にロードされない(まだロードされていない場合はnull が返される)。 |
StackView.ForceLoad | 項目は強制的にロードされます。 |
Item pop(item, operation) |
スタックから 1 つ以上の項目を取り出します。スタックから取り除かれた最後の項目を返す。
引数item が指定された場合、item までのすべての項目がポップされる。item がnull
の場合、最初の項目から下の(ただし最初の項目を含まない)すべての項目がポップされる。指定されていない場合は、現在の項目のみがポップされます。
注意: 深さ1または0のスタックに対するpop()操作は何もしない。このような場合、clear() メソッドを使用してスタックを空にすることができます。
ポップされたときに破棄されるのは、StackView 自身が(Component またはurl から)作成した項目のみです。詳しくはItem Ownership を参照。
最後の引数にoperation を指定することもできる。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を伴う操作(QtQuick.Controls 2.1 以降)。 |
StackView.ReplaceTransition | 置換遷移を伴う操作 (QtQuick.Controls 2.1 以降)。 |
StackView.PopTransition | pop 遷移を持つ操作(QtQuick.Controls 2.1 以降)。 |
操作が指定されていない場合は、PopTransition
が使用されます。
例:
stackView.pop() stackView.pop(someItem, StackView.Immediate) stackView.pop(StackView.Immediate) stackView.pop(null)
注意: QMLをコンパイルする場合、代わりにstrong-typedのpopToItem,popToIndex またはpopCurrentItem 関数を使用してください。
clear()、Popping Items 、Unwinding Items via Popも参照してください 。
|
スタックからcurrentItem を取り出す。スタックから取り除かれた最後のアイテム、またはdepth が1
であった場合はnull
を返します。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
最後の引数にoperation を指定することもできる。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、PopTransition
が使用される。
この関数はpopToIndex(stackView.currentIndex - 1)
と同等です。
このメソッドは Qt 6.7 で導入されました。
clear()、Popping Items 、Unwinding Items via Popも参照してください 。
|
index までのすべての項目をポップダウンする。スタックから取り除かれた最後の項目を返す。
index が範囲外の場合、警告が出され、null
が返される。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照。
最後の引数としてoperation をオプションで指定できる。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が提供されていない場合、PopTransition
が使用されます。
stackView.popToIndex(stackView.depth - 2, StackView.Immediate)
このメソッドは Qt 6.7 で導入されました。
clear(),Popping Items,Unwinding Items via Popも参照してください 。
|
item までのすべての項目をポップダウンする。スタックから取り除かれた最後の項目を返す。
item がnull
の場合、警告が発せられ、null
が返される。
ポップされたときに破棄されるのは、StackView 自身が(Component またはurl から)作成したアイテムのみです。詳しくはItem Ownership を参照。
最後の引数にoperation を指定することもできる。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が提供されていない場合、PopTransition
が使用されます。
stackView.popToItem(someItem, StackView.Immediate)
このメソッドは Qt 6.7 で導入されました。
clear()、Popping Items 、Unwinding Items via Popも参照してください 。
Item push(item, properties, operation) |
オプションのoperation を使用してitem をスタックにプッシュし、オプションでそのアイテムにproperties のセットを適用します。アイテムは、Item 、Component 、またはurl のいずれかです。
StackView プッシュされたアイテムが 、または の場合、自動的にインスタンスが作成され、スタックからポップ・オフされるとインスタンスは破棄されます。詳細は を参照。Component url Item Ownership
オプションの引数properties は、プッシュされたアイテムの初期プロパティ値のマップを指定します。動的に作成されるアイテムの場合、これらの値は、作成が確定する前に適用されます。これは、作成後にプロパティ値を設定するよりも効率的で、特に大きなプロパティ値のセットが定義されている場合、アイテムが作成される前に(Qt.binding ()を使用して)プロパティバインディングを設定することもできます。
単一のアイテムのプッシュ
stackView.push(rect) // or with properties: stackView.push(rect, {"color": "red"})
複数のアイテムを同時にプッシュするには、追加の引数として渡すか、配列として渡します。最後の項目が現在の項目になります。各アイテムの後には、適用するプロパティを指定することができます。
可変量の引数を渡す:
stackView.push(rect1, rect2, rect3) // or with properties: stackView.push(rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"})
項目の配列をプッシュする:
stackView.push([rect1, rect2, rect3]) // or with properties: stackView.push([rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"}])
最後の引数としてoperation をオプションで指定できる。サポートされている操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を伴う操作(QtQuick.Controls 2.1 以降)。 |
StackView.ReplaceTransition | 置換遷移を伴う操作 (QtQuick.Controls 2.1 以降)。 |
StackView.PopTransition | pop 遷移を持つ操作(QtQuick.Controls 2.1 以降)。 |
操作が提供されない場合、スタックが空の場合はImmediate
が使用され、それ以外の場合はPushTransition
が使用されます。
注意: スタックにすでに存在するアイテムはプッシュされません。
注意: QMLをコンパイルする場合、代わりにstrong-typedのpushItem またはpushItems 関数を使用してください。
initialItem およびPushing Itemsも参照してください 。
|
item をスタックにプッシュし、オプションでoperation を使ってproperties のセットを適用する。カレントとなったアイテム(最後のアイテム)を返す。
最後の引数としてoperation をオプションで指定できる。サポートされる操作:
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、PushTransition
。
複数のアイテムをスタックにプッシュするには、pushItems() を使用します。
このメソッドはQt 6.7で導入されました。
initialItem とPushing Itemsも参照してください 。
|
この関数はpushItem()をオーバーロードする。
スタックにcomponent をプッシュし、オプションでoperation を使用してproperties のセットを適用する。カレントとなったアイテム(最後のアイテム)を返します。
最後の引数としてoperation をオプションで指定できる。サポートされる操作:
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、PushTransition
。
複数のアイテムをスタックにプッシュするには、pushItems() を使用します。
このメソッドはQt 6.7で導入されました。
initialItem とPushing Itemsも参照してください 。
|
この関数はpushItem()をオーバーロードする。
スタックにurl をプッシュし、オプションでoperation を使用してproperties のセットを適用する。カレントとなったアイテム(最後のアイテム)を返します。
最後の引数としてoperation をオプションで指定できる。サポートされる操作:
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、PushTransition
。
複数のアイテムをスタックにプッシュするには、pushItems() を使用します。
このメソッドはQt 6.7で導入されました。
initialItem とPushing Itemsも参照してください 。
|
オプシ ョ ンの引数operation を用いてitems をス タ ッ ク 上にプ ッ シュ し 、 オプシ ョ ンで各要素にプ ロパテ ィ 群を適用。items は要素の配列。各要素は、Item 、Component 、url のいずれかであり、その後にオプションのプロパティ引数(下記参照)を続けることができる。カレントとなったアイテム(最後のアイテム)を返します。
StackView プッシュされた要素が または の場合、自動的にインスタンスが作成され、スタックからポップ・オフされるとインスタンスは破棄されます。詳細は を参照してください。Component url Item Ownership
オプションの properties 引数は、各アイテムの後に続き、プロパティの初期値のマップを指定します。動的に作成されるアイテムの場合、これらの値は作成が確定する前に適用されます。これは、作成後にプロパティ値を設定するよりも効率的で、特に大きなプロパティ値のセットが定義されている場合、また、アイテムが作成される前にプロパティバインディングを(Qt.binding ()を使用して)設定することができます。
stackView.push([item, rectComponent, Qt.resolvedUrl("MyItem.qml")]) // With properties: stackView.pushItems([ item, { "color": "red" }, rectComponent, { "color": "green" }, Qt.resolvedUrl("MyItem.qml"), { "color": "blue" } ]) // With properties for only some items: stackView.pushItems([ item, { "color": "yellow" }, rectComponent ])
最後の引数にoperation を指定することもできます。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、PushTransition
。
単一の項目をプッシュするには、関連するpushItem
関数を使用します:
注意: スタックに既に存在するアイテムはプッシュされません。
このメソッドは Qt 6.7 で導入されました。
initialItem 、pushItem 、Pushing Itemsも参照してください 。
Item replace(target, item, properties, operation) |
スタック上の 1 つ以上のアイテムを、指定されたitem とオプションのoperation で置き換え、オプションでアイテムにproperties のセットを適用します。アイテムは、Item 、Component 、またはurl のいずれかです。
Component またはurl から)StackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳細はItem Ownership を参照。
引数にtarget を指定すると、target までのすべての項目が置き換えられます。target がnull
の場合、スタック内のすべての項目が置き換えられる。指定しない場合は、一番上の項目だけが置き換えられます。
StackView Component urlオプションの 引数には、置換アイテムの初期プロパティ値のマップを指定します。動的に作成されるアイテムの場合、これらの値は作成が確定する前に適用されます。これは、作成後にプロパティ値を設定するよりも効率的で、特に大きなプロパティ値のセットが定義されている場合、アイテムが作成される前に( ()を使用して)プロパティバインディングを設定することもできます。properties Qt.binding
先頭のアイテムを置き換える:
stackView.replace(rect) // or with properties: stackView.replace(rect, {"color": "red"})
複数のアイテムを同時に置換するには、追加の引数として渡すか、配列として渡します。各項目の後に、適用するプロパティのセットを続けることができます。
可変量の引数を渡す:
stackView.replace(rect1, rect2, rect3) // or with properties: stackView.replace(rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"})
項目の配列を置き換える:
stackView.replace([rect1, rect2, rect3]) // or with properties: stackView.replace([rect1, {"color": "red"}, rect2, {"color": "green"}, rect3, {"color": "blue"}])
最後の引数としてoperation をオプションで指定できます。サポートされる操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を伴う操作(QtQuick.Controls 2.1 以降)。 |
StackView.ReplaceTransition | 置換遷移を伴う操作 (QtQuick.Controls 2.1 以降)。 |
StackView.PopTransition | pop 遷移を持つ操作(QtQuick.Controls 2.1 以降)。 |
操作が提供されていない場合、スタックが空の場合はImmediate
が使用され、それ以外の場合はReplaceTransition
が使用されます。
以下の例では、replace() による push および pop 遷移の使用法を示します。
StackView { id: stackView initialItem: Component { id: page Page { Row { spacing: 20 anchors.centerIn: parent Button { text: "<" onClicked: stackView.replace(page, StackView.PopTransition) } Button { text: ">" onClicked: stackView.replace(page, StackView.PushTransition) } } } } }
注意: QMLをコンパイルする場合には、代わりにstrong-typedのreplaceCurrentItem 関数を使用してください。
push() およびReplacing Itemsも参照してください 。
|
スタックからcurrentItem をポップし、items をプッシュする。オプションのoperation が指定された場合、関連するトランジションが使用される。各アイテムの後には、そのアイテムに適用されるプロパティのセットをオプションで指定できます。カレントになったアイテムを返す。
オプションのプロパティ引数は、各アイテムの後に続き、プロパティの初期値のマップを指定します。動的に作成されたアイテムの場合、これらの値は作成が確定する前に適用されます。これは、作成後にプロパティ値を設定するよりも効率的で、特に大きなプロパティ値のセットが定義されている場合、アイテムが作成される前に(Qt.binding ()を使用して)プロパティバインディングを設定することもできます。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
最後の引数として、operation をオプションで指定できる。サポートされている操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、ReplaceTransition
。
stackView.replaceCurrentItem([item, rectComponent, Qt.resolvedUrl("MyItem.qml")]) // With properties: stackView.replaceCurrentItem([ item, { "color": "red" }, rectComponent, { "color": "green" }, Qt.resolvedUrl("MyItem.qml"), { "color": "blue" } ])
単一のアイテムをプッシュするには、関連するオーバーロードを使用します:
- replaceCurrentItem(アイテム, プロパティ, 操作)
- replaceCurrentItem(コンポーネント、プロパティ、操作)
- replaceCurrentItem(url, properties, operation)
このメソッドは Qt 6.7 で導入されました。
push() およびReplacing Itemsも参照してください 。
|
この関数はreplaceCurrentItem()をオーバーロードする。
スタックからcurrentItem をポップし、item をプッシュする。オプションのoperation が指定された場合、関連するトランジションが使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
最後の引数にoperation を指定することもできる。サポートされている操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、ReplaceTransition
。
複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使用します。
このメソッドは Qt 6.7 で導入されました。
Replacing Itemsも参照してください 。
|
この関数はreplaceCurrentItem()をオーバーロードする。
スタックからcurrentItem をポップし、component をプッシュする。オプションのoperation が指定された場合、関連するトランジションが使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
最後の引数にoperation を指定することもできる。サポートされている操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、ReplaceTransition
。
複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使います。
このメソッドは Qt 6.7 で導入されました。
Replacing Itemsも参照してください 。
|
この関数はreplaceCurrentItem()をオーバーロードする。
スタックからcurrentItem をポップし、url をプッシュする。オプションのoperation が指定された場合、関連するトランジションが使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。
Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。
最後の引数にoperation を指定することもできる。サポートされている操作
定数 | 説明 |
---|---|
StackView.Immediate | 遷移を伴わない即時操作。 |
StackView.PushTransition | プッシュ遷移を持つ操作。 |
StackView.ReplaceTransition | 置換遷移を伴う操作。 |
StackView.PopTransition | pop遷移を持つ操作。 |
操作が指定されていない場合は、ReplaceTransition
。
複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使用します。
このメソッドは Qt 6.7 で導入されました。
Replacing Itemsも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.