StackView QML Type

スタックベースのナビゲーションモデルを提供します。詳細...

Import Statement: import QtQuick.Controls
Inherits:

Control

プロパティ

付属プロパティ

アタッチドシグナル

  • 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))

メソッド

詳細説明

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].

注: 深さ1または0のスタックに対するpop ()操作は何もしない。このような場合、clear() メソッドを使用してスタックを空にできます。

ポップによるアイテムの巻き戻し

スタックを一段階以上さかのぼる必要がある場合がある。例えば、アプリケーションの "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は、プッシュされたアイテムから暗黙のサイズを継承しません。これは、例えば、DialogcontentItem として使用すると、期待通りに動作しないことを意味します:

Dialog {
    StackView {
        initialItem: Rectangle {
            width: 200
            height: 200
            color: "salmon"
        }
    }
}

このような状況でStackViewが確実にサイズを持つようにするには、いくつかの方法があります:

QtクイックコントロールのStackViewのカスタマイズStackViewでのナビゲーションナビゲーションコントロールコンテナコントロールフォーカス管理も参照してください

プロパティ ドキュメント

busy : bool [read-only]

このプロパティは、トランジションが実行中であるかどうかを保持します。


currentItem : Item [read-only]

このプロパティは、スタック内の現在の最上位の項目を保持します。


depth : int [read-only]

このプロパティは、現在スタックにプッシュされているアイテムの数を保持します。


empty : bool [read-only, since QtQuick.Controls 2.3 (Qt 5.10)]

このプロパティは、スタックが空であるかどうかを保持します。

このプロパティは、QtQuick.Controls 2.3 (Qt 5.10) で導入されました。

depthも参照してください


initialItem : var

このプロパティは、StackView が作成されたときに表示される初期項目を保持します。初期項目は、ItemComponent 、またはurl のいずれかです。初期項目を指定することは、以下と同じです:

Component.onCompleted: stackView.push(myInitialItem)

push()も参照のこと


popEnter : Transition

このプロパティは、他の項目がスタックからポップ・オフされたときに、スタックに入る項目に適用される遷移を保持する。

StackViewのカスタマイズも参照してください


popExit : Transition

このプロパティは、アイテムがスタックからポップ・オフされた時に、スタックから出るアイテムに適用されるトランジションを保持します。

StackViewのカスタマイズも参照して ください。


pushEnter : Transition

このプロパティは、アイテムがスタックにプッシュされた時、スタックに入るアイテムに適用されるトランジションを保持します。

StackViewのカスタマイズも参照して ください。


pushExit : Transition

このプロパティは、他のアイテムがスタックにプッシュされた時、スタックから出るアイテムに適用されるトランジションを保持します。

StackViewのカスタマイズも参照して ください。


replaceEnter : Transition

このプロパティは、他のアイテムがそのアイテムに置き換えられた時にスタックに入るアイテムに適用されるトランジションを保持します。

StackViewのカスタマイズも参照して ください。


replaceExit : Transition

このプロパティは、スタックから出るアイテムが他のアイテムに置き換えられた時に、そのアイテムに適用されるトランジションを保持します。

StackViewのカスタマイズも参照して ください。


Attached プロパティの説明

StackView.index : int [read-only]

この Attached プロパティは、アタッチされているアイテムのスタックインデックスを保持し、アイテムがスタックにない場合は、-1


StackView.status : enumeration [read-only]

この Attached プロパティは、アタッチされているアイテムのスタックステータスを保持し、アイテムがスタックにない場合は、StackView.Inactive

利用可能な値:

定数説明
StackView.Inactiveアイテムは非アクティブです(またはスタックにありません)。
StackView.Deactivatingアイテムは非アクティブ化(ポップオフ)されています。
StackView.Activatingアイテムがアクティブになっている(カレントアイテムになっている)。
StackView.Activeアイテムがアクティブ、つまりカレントアイテムである。

StackView.view : StackView [read-only]

このアタッチされたプロパティは、アタッチされたアイテムのスタックビューを保持し、アイテムがスタックにない場合は、null


StackView.visible : bool [since QtQuick.Controls 2.2 (Qt 5.9)]

このアタッチされたプロパティは、それがアタッチされているアイテムの可視性を保持する。値は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) で導入されました。


アタッチドシグナル ドキュメント

[since QtQuick.Controls 2.1 (Qt 5.8)] activated()

このアタッチドシグナルは、アタッチされているアイテムがスタックでアクティブになったときに発せられます。

注意: 対応するハンドラはonActivated です。

このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。

statusも参照してください


[since QtQuick.Controls 2.1 (Qt 5.8)] activating()

このアタッチドシグナルは、アタッチされているアイテムがスタック内でアクティブ化されている最中に発行されます。

注: 対応するハンドラはonActivating です。

このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。

statusも参照してください


[since QtQuick.Controls 2.1 (Qt 5.8)] deactivated()

このアタッチシグナルは、アタッチされているアイテムがスタックで非アクティブになった時に発行されます。

注: 対応するハンドラはonDeactivated です。

このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。

statusも参照してください


[since QtQuick.Controls 2.1 (Qt 5.8)] deactivating()

このアタッチシグナルは、アタッチされているアイテムがスタックから削除されるときに発行されます。

注: 対応するハンドラはonDeactivating です。

このシグナルは QtQuick.Controls 2.1 (Qt 5.8) で導入されました。

statusも参照してください


[since QtQuick.Controls 2.1 (Qt 5.8)] removed()

このアタッチシグナルは、アタッチされているアイテムがスタックから削除されたときに発行されます。例えば、スタックにプッシュされたアイテムを安全に破棄するために使用できます:

Item {
    StackView.onRemoved: destroy() // Will be destroyed sometime after this call.
}

注: 対応するハンドラはonRemoved です。

このシグナルは 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.ReplaceTransitionreplace 遷移でスタックをクリアします。
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 までのすべての項目がポップされる。itemnull の場合、最初の項目から下の(ただし最初の項目を含まない)すべての項目がポップされる。指定されていない場合は、現在の項目のみがポップされます。

注意: 深さ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.PopTransitionpop遷移を持つ操作(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 ItemsUnwinding Items via Popも参照してください


[since 6.7] Item popCurrentItem(operation)

スタックからcurrentItem を取り出します。スタックから削除された最後のアイテム、またはdepth1 であった場合はnull を返します。

ポップされたときに破棄されるのは、StackView 自身が(Component またはurl から)作成したアイテムのみです。詳しくはItem Ownership を参照してください。

最後の引数にoperation を指定することもできる。サポートされている操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PopTransition が使用される。

この関数はpopToIndex(stackView.currentIndex - 1) と同等です。

このメソッドは Qt 6.7 で導入されました。

clear()、Popping ItemsUnwinding Items via Popも参照してください


[since 6.7] Item popToIndex(index, operation)

index までのすべての項目をポップダウンします。スタックから削除された最後の項目を返します。

index が範囲外の場合、警告が出され、null が返される。

Component またはurl から)StackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳細はItem Ownership を参照。

最後の引数としてoperation をオプションで指定できる。サポートされる操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PopTransition

stackView.popToIndex(stackView.depth - 2, StackView.Immediate)

このメソッドはQt 6.7で導入されました。

clear()、Popping ItemsUnwinding Items via Popも参照してください


[since 6.7] Item popToItem(item, operation)

すべての項目をitem までポップダウンします。スタックから削除された最後の項目を返します。

itemnull の場合、警告が生成され、null が返される。

Component またはurl からStackView が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照。

最後の引数にoperation を指定することもできる。サポートされる操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が提供されていない場合、PopTransition が使用されます。

stackView.popToItem(someItem, StackView.Immediate)

このメソッドは Qt 6.7 で導入されました。

clear()、Popping ItemsUnwinding Items via Popも参照してください


Item push(item, properties, operation)

オプションのoperation を使用してitem をスタックにプッシュし、オプションでそのアイテムにproperties のセットを適用します。アイテムは、ItemComponent 、または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.PopTransitionpop遷移を持つ操作(QtQuick.Controls 2.1以降)。

操作が提供されない場合、スタックが空の場合はImmediate が使用され、それ以外の場合はPushTransition が使用されます。

注意: スタックにすでに存在するアイテムはプッシュされません。

注意: QMLをコンパイルする場合、代わりにstrong-typedのpushItem またはpushItems 関数を使用してください。

initialItem およびPushing Itemsも参照してください


[since 6.7] Item pushItem(item, properties, operation)

item をスタックにプッシュし、オプションでproperties のセットを適用します。オプションでoperation を使用します。カレントとなったアイテム(最後のアイテム)を返します。

最後の引数としてoperation をオプションで指定できる。サポートされる操作:

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PushTransition

複数のアイテムをスタックにプッシュするには、pushItems() を使用します。

このメソッドはQt 6.7で導入されました。

initialItemPushing Itemsも参照してください


[since 6.7] Item pushItem(component, properties, operation)

この関数は pushItem() をオーバーロードします。

operationスタックにcomponent をプッシュし、オプションでproperties のセットを適用します。カレントとなったアイテム(最後のアイテム)を返します。

最後の引数としてoperation をオプションで指定できる。サポートされる操作:

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PushTransition

複数のアイテムをスタックにプッシュするには、pushItems() を使用します。

このメソッドはQt 6.7で導入されました。

initialItemPushing Itemsも参照してください


[since 6.7] Item pushItem(url, properties, operation)

この関数は pushItem() をオーバーロードします。

operationスタックにurl をプッシュし、オプションでproperties のセットを適用します。カレントとなったアイテム(最後のアイテム)を返します。

最後の引数としてoperation をオプションで指定できる。サポートされる操作:

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PushTransition

複数のアイテムをスタックにプッシュするには、pushItems() を使用します。

このメソッドはQt 6.7で導入されました。

initialItemPushing Itemsも参照してください


[since 6.7] Item pushItems(items, operation)

オプションのoperation を使ってitems をスタックにプッシュし、オプションで各要素にプロパティのセットを適用します。items は要素の配列です。各要素は、ItemComponenturl のいずれかであり、その後にオプションのプロパティ引数を続けることができます(下記参照)。カレントとなったアイテム(最後のアイテム)を返します。

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.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、PushTransition

単一の項目をプッシュするには、関連するpushItem 関数を使用します:

  • pushItem(アイテム, プロパティ, 操作)
  • pushItem(コンポーネント、プロパティ、オペレーション)
  • pushItem(url, properties, operation)

注意: スタックに既に存在するアイテムはプッシュされません。

このメソッドは Qt 6.7 で導入されました。

initialItempushItemPushing Itemsも参照してください


Item replace(target, item, properties, operation)

スタック上の 1 つ以上のアイテムを、指定されたitem とオプションのoperation で置き換え、オプションでアイテムにproperties のセットを適用します。アイテムは、ItemComponent 、またはurl のいずれかです。

Component またはurl から)StackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳細はItem Ownership を参照。

引数にtarget を指定すると、target までのすべての項目が置き換えられます。targetnull の場合、スタック内のすべての項目が置き換えられる。指定しない場合は、一番上の項目だけが置き換えられます。

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.PopTransitionpop遷移を持つ操作(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も参照してください


[since 6.7] Item replaceCurrentItem(items, operation)

スタックからcurrentItem をポップし、items をプッシュします。オプションでoperation が指定された場合、関連するトランジションが使用されます。各項目の後には、その項目に適用されるプロパティのセットをオプションで指定できます。カレントになったアイテムを返す。

オプションのプロパティ引数は、各アイテムの後に続き、プロパティの初期値のマップを指定します。動的に作成されたアイテムの場合、これらの値は作成が確定する前に適用されます。これは、作成後にプロパティ値を設定するよりも効率的で、特に大きなプロパティ値のセットが定義されている場合、アイテムが作成される前に(Qt.binding ()を使用して)プロパティバインディングを設定することもできます。

Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。

オプションで、最後の引数にoperation を指定することができる。サポートされる操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、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" }
])

単一の項目をプッシュするには、関連するオーバーロードを使用します:

このメソッドは Qt 6.7 で導入されました。

push() およびReplacing Itemsも参照してください


[since 6.7] Item replaceCurrentItem(item, properties, operation)

この関数は replaceCurrentItem() をオーバーロードします。

スタックからcurrentItem をポップし、item をプッシュします。オプションのoperation が指定された場合、関連する遷移が使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。

Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。

最後の引数にoperation を指定することもできる。サポートされている操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、ReplaceTransition

複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使用します。

このメソッドは Qt 6.7 で導入されました。

Replacing Itemsも参照してください


[since 6.7] Item replaceCurrentItem(component, properties, operation)

この関数は replaceCurrentItem() をオーバーロードします。

スタックからcurrentItem をポップし、component をプッシュします。オプションのoperation が指定された場合、関連するトランジションが使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。

Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。

最後の引数にoperation を指定することもできる。サポートされている操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、ReplaceTransition

複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使用します。

このメソッドは Qt 6.7 で導入されました。

Replacing Itemsも参照してください


[since 6.7] Item replaceCurrentItem(url, properties, operation)

この関数は replaceCurrentItem() をオーバーロードします。

スタックからcurrentItem をポップし、url をプッシュします。オプションのoperation が指定された場合、関連するトランジションが使用されます。オプションのproperties が指定された場合、それらはアイテムに適用されます。カレントになったアイテムを返します。

Component またはurl からStackView 自身が作成したアイテムだけが、ポップされたときに破棄されます。詳しくはItem Ownership を参照してください。

最後の引数にoperation を指定することもできる。サポートされている操作

定数説明
StackView.Immediate遷移を伴わない即時操作。
StackView.PushTransitionプッシュ遷移を持つ操作。
StackView.ReplaceTransition置換遷移を伴う操作。
StackView.PopTransitionpop遷移を持つ操作。

操作が指定されていない場合は、ReplaceTransition

複数のアイテムをスタックにプッシュするには、replaceCurrentItem(items, operation)を使用します。

このメソッドは Qt 6.7 で導入されました。

Replacing Itemsも参照してください


©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。