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

방법

상세 설명

스택뷰는 상호 연결된 정보 페이지 세트와 함께 사용할 수 있습니다. 예를 들어, 최신 이메일 목록 보기, 특정 이메일 보기, 첨부파일 목록/보기 등 별도의 보기가 있는 이메일 애플리케이션을 예로 들 수 있습니다. 이메일 목록 보기는 사용자가 이메일을 열면 스택에 푸시되고, 뒤로 돌아가기를 선택하면 튀어 나옵니다.

다음 스니펫은 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 이 설정되지 않은 경우 최상위 항목에 할당된 항목입니다.

기본 탐색

StackView는 push(), pop(), replace()의 세 가지 기본 탐색 연산을 지원합니다. 이는 "밀어내기"는 스택의 맨 위에 항목을 추가하고, "팝"은 스택에서 맨 위 항목을 제거하며, "바꾸기"는 팝에 이어 밀어내기를 수행하여 맨 위 항목을 새 항목으로 대체하는 클래식 스택 작업에 해당합니다. 스택의 최상위 항목은 화면에 표시되는 currently 항목에 해당합니다. 논리적으로 '밀어내기'는 애플리케이션 UI를 앞으로 또는 더 깊이 이동하고, '팝'은 뒤로 이동하며, '바꾸기'는 currentItem 를 대체합니다.

항목 밀기

다음 애니메이션에서는 push() 함수를 사용하여 세 개의 Label 컨트롤을 스택 보기에 푸시합니다:

이제 스택에 다음 항목이 포함됩니다: [A, B, C].

참고: 스택이 비어 있는 경우 push() 작업에는 전환할 항목이 없으므로 전환 애니메이션이 없습니다(일반적으로 애플리케이션 시작 시).

항목 팝핑

위의 예에서 계속하여 pop() 호출을 통해 스택의 최상위 항목이 제거됩니다:

이제 스택에 다음 항목이 포함됩니다: [A, B].

참고: 깊이가 1 또는 0인 스택에서 pop() 작업을 수행하면 아무 작업도 수행되지 않습니다. 이러한 경우 clear() 메서드를 사용하여 스택을 비울 수 있습니다.

팝을 통해 항목 풀기

때로는 스택에서 한 단계 이상 거슬러 올라가야 할 때가 있습니다. 예를 들어 애플리케이션에서 "메인" 항목 또는 일종의 섹션 항목으로 돌아가야 하는 경우가 있습니다. 이러한 경우 pop()의 매개변수로 항목을 지정할 수 있습니다. 이를 "언와인드" 작업이라고 하며, 지정된 항목까지 스택이 언와인드됩니다. 항목을 찾을 수 없는 경우 스택은 하나의 항목이 남을 때까지 풀려서 currentItem 이 됩니다. 스택의 맨 아래까지 명시적으로 풀려면 존재하지 않는 항목도 가능하지만 pop(null)을 사용하는 것이 좋습니다.

다음 애니메이션에서는 pop(null) 을 호출하여 스택을 첫 번째 항목으로 언로딩합니다:

이제 스택에 단일 항목인 [A] 이 포함됩니다.

항목 바꾸기

다음 애니메이션에서는 최상위 항목을 D 으로 replace 바꿉니다:

이제 스택에 다음 항목이 포함됩니다: [A, B, D].

딥 링크

딥링킹이란 애플리케이션을 특정 상태로 실행하는 것을 의미합니다. 예를 들어 신문 애플리케이션을 실행하면 최상위 항목을 우회하여 특정 기사를 표시할 수 있습니다. StackView에서 딥링킹이란 스택의 상태를 수정하는 기능을 의미하므로, 특정 항목 집합을 스택의 맨 위로 밀어 올리거나 스택을 특정 상태로 완전히 초기화할 수 있습니다.

StackView에서 딥링킹을 위한 API는 기본 탐색과 동일합니다. 단일 항목 대신 배열을 누르면 해당 배열의 모든 항목이 스택에 추가됩니다. 그러나 전환 애니메이션은 배열의 마지막 항목에 대해서만 적용됩니다. push ()의 일반적인 의미는 딥링킹, 즉 푸시된 모든 항목을 스택에 추가하는 데 적용됩니다.

참고: 배열의 마지막 항목만 로드됩니다. 나머지 항목은 후속 팝 호출이나 get()를 사용하여 항목을 가져오기 위한 요청 시 필요할 때만 로드됩니다.

이렇게 하면 스택 [A, B, C]가 주어졌을 때 다음과 같은 결과를 얻을 수 있습니다:

  • push([D, E, F]) => [A, B, C, D, E, F] - C와 F 사이의 전환 애니메이션 "푸시"
  • 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(색인)을 사용하여 스택의 항목으로 이동할 수도 있습니다.

previousItem = stackView.get(myItem.StackView.index - 1));

전환

각 푸시 또는 팝 작업에 대해 항목에 들어가고 나갈 때 서로 다른 전환 애니메이션이 적용됩니다. 이러한 애니메이션은 들어오는 항목의 애니메이션과 나가는 항목의 애니메이션을 정의합니다. 애니메이션은 스택뷰의 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
        }
    }
}

참고: 스택뷰에 추가된 항목에 앵커를 사용하는 것은 지원되지 않습니다. 일반적으로 푸시, 팝, 바꾸기 전환은 위치에 애니메이션을 적용하는데, 앵커를 적용하면 이 작업이 불가능합니다. 이는 항목의 루트에만 적용된다는 점에 유의하세요. 하위 항목에 앵커를 사용하면 예상대로 작동합니다.

항목 소유권

스택뷰는 자체적으로 생성한 항목에 대해서만 소유권을 갖습니다. 즉, 스택뷰에 푸시된 모든 항목은 스택뷰에 의해 파괴되지 않으며, Components 또는 URLs 에서 스택뷰가 생성한 항목만 스택뷰에 의해 파괴됩니다. 이를 설명하기 위해 아래 예제의 메시지는 스택뷰가 소멸될 때만 출력되며, 항목이 스택에서 튀어나올 때는 출력되지 않습니다:

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 {
    id: itemComponent

    Item {
        Component.onDestruction: print("Destroying second item")
    }
}

StackView {
    initialItem: "Item1.qml"

    Component.onCompleted: push(itemComponent)
}

Size

스택뷰는 푸시된 항목에서 암시적 크기를 상속하지 않습니다. 즉, 예를 들어 DialogcontentItem 로 사용하면 예상대로 작동하지 않습니다:

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

이 상황에서 StackView의 크기를 확보하는 방법에는 여러 가지가 있습니다:

Qt Quick Controls 에서스택뷰 사용자 지정하기, 스택뷰로 탐색하기, 탐색 컨트롤, 컨테이너 컨트롤포커스 관리도참조하세요 .

속성 문서

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 가 생성될 때 표시되어야 하는 초기 항목을 보유합니다. 초기 항목은 Item, Component 또는 url 일 수 있습니다. 초기 항목을 지정하는 것은 다음과 같습니다:

Component.onCompleted: stackView.push(myInitialItem)

push()도 참조하세요 .


popEnter : Transition

이 속성은 스택에서 다른 항목이 튀어나올 때 스택에 들어오는 항목에 적용되는 전환을 유지합니다.

스택뷰 사용자 지정하기를참조하세요 .


popExit : Transition

이 속성은 항목이 스택에서 튀어나올 때 스택에서 나가는 항목에 적용되는 전환을 보유합니다.

스택뷰 커스터마이징도참조하십시오 .


pushEnter : Transition

이 속성은 항목을 스택에 밀어 넣을 때 스택에 들어오는 항목에 적용되는 전환을 저장합니다.

스택뷰 커스터마이징도참조하십시오 .


pushExit : Transition

이 속성은 다른 항목을 스택에 밀어 넣을 때 스택에서 나가는 항목에 적용되는 전환을 저장합니다.

스택뷰 사용자 지정하기를참조하십시오 .


replaceEnter : Transition

이 속성은 다른 항목이 스택으로 대체될 때 스택에 들어오는 항목에 적용되는 전환을 저장합니다.

스택뷰 사용자 지정하기를참조하십시오 .


replaceExit : Transition

이 속성은 스택에서 나가는 항목이 다른 항목으로 대체될 때 스택에서 나가는 항목에 적용되는 전환을 저장합니다.

스택뷰 커스터마이징도참조하세요 .


첨부 속성 문서

StackView.index : int [read-only]

이 첨부된 속성은 첨부된 항목의 스택 인덱스(해당 항목이 스택에 없는 경우 -1 )를 보유합니다.


StackView.status : enumeration [read-only]

이 첨부된 속성은 첨부된 항목의 스택 상태(항목이 스택에 없는 경우 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.ReplaceTransition바꾸기 전환으로 스택을 지웁니다.
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)

하나 이상의 항목을 스택에서 꺼냅니다. 스택에서 마지막으로 제거된 항목을 반환합니다.

item 인수를 지정하면 item 까지의 모든 항목이 팝업됩니다. itemnull 인 경우 첫 번째 항목까지 모든 항목이 팝업됩니다(단, 첫 번째 항목은 포함하지 않음). 지정하지 않으면 현재 항목만 팝업됩니다.

참고: 깊이가 1 또는 0인 스택에 대한 pop() 연산은 아무 작업도 수행하지 않습니다. 이러한 경우 clear() 메서드를 사용하여 스택을 비울 수 있습니다.

Component 또는 url 에서 StackView 자체적으로 생성한 항목만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산( QtQuick.Controls 2.1 이후).
StackView.ReplaceTransition바꾸기 전환이 있는 연산 ( QtQuick.Controls 2.1 이후).
StackView.PopTransition팝 전환이 있는 연산( QtQuick.Controls 2.1 이후).

연산이 제공되지 않으면 PopTransition 이 사용됩니다.

예제:

stackView.pop()
stackView.pop(someItem, StackView.Immediate)
stackView.pop(StackView.Immediate)
stackView.pop(null)

참고: QML을 컴파일하는 경우 강력하게 입력된 popToItem, popToIndex 또는 popCurrentItem 함수를 대신 사용하세요.

clear(), Popping Items, Unwinding Items via Pop도 참조하세요 .


[since 6.7] Item popCurrentItem(operation)

currentItem 을 스택에서 꺼냅니다. 스택에서 마지막으로 제거된 항목( depth1 인 경우 null )을 반환합니다.

StackViewComponent 또는 url 에서 자체 생성한 항목만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 PopTransition 이 사용됩니다.

이 함수는 popToIndex(stackView.currentIndex - 1) 와 동등합니다.

이 메서드는 Qt 6.7에 도입되었습니다.

clear(), Popping Items, 및 Unwinding 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.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 PopTransition 이 사용됩니다.

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

이 메서드는 Qt 6.7에 도입되었습니다.

clear(), Popping Items, 및 Unwinding Items via Pop참조하십시오 .


[since 6.7] Item popToItem(item, operation)

모든 항목을 item 로 내려놓습니다. 스택에서 마지막으로 제거된 항목을 반환합니다.

itemnull 인 경우 경고가 생성되고 null 가 반환됩니다.

StackViewComponent 또는 url 에서 직접 생성한 항목만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 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팝 전환이 있는 연산( QtQuick.Controls 2.1 이후).

연산이 제공되지 않으면 스택이 비어 있으면 Immediate, 그렇지 않으면 PushTransition 이 사용됩니다.

참고: 스택에 이미 존재하는 항목은 푸시되지 않습니다.

참고: QML을 컴파일하는 경우 강력하게 입력된 pushItem 또는 pushItems 함수를 대신 사용하세요.

initialItemPushing Items도 참조하세요 .


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

item 을 스택에 푸시하고 선택적으로 operation 을 사용하여 properties 세트를 적용합니다. 현재가 된 항목(마지막 항목)을 반환합니다.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 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.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 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.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 PushTransition 이 사용됩니다.

여러 항목을 스택에 푸시하려면 pushItems()를 사용합니다.

이 메서드는 Qt 6.7에서 도입되었습니다.

initialItemPushing Items참조하십시오 .


[since 6.7] Item pushItems(items, operation)

선택적 operation 을 사용하여 items 을 스택에 푸시하고 각 요소에 선택적으로 속성 집합을 적용합니다. items 은 요소의 배열입니다. 각 요소는 Item, Component 또는 url 일 수 있으며 그 뒤에 선택적 속성 인수가 올 수 있습니다(아래 참조). 현재가 된 항목(마지막 항목)을 반환합니다.

StackView 푸시된 요소가 Component 또는 url 인 경우 자동으로 인스턴스를 생성하며, 스택에서 튀어나오면 인스턴스가 소멸됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적 속성 인수는 각 항목 뒤에 오며 초기 속성 값의 맵을 지정합니다. 동적으로 생성된 항목의 경우 이러한 값은 생성이 완료되기 전에 적용됩니다. 이는 특히 대량의 속성 값 집합이 정의된 경우 생성 후에 속성 값을 설정하는 것보다 효율적이며, 항목이 생성되기 전에 속성 바인딩을 설정( 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팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 PushTransition 이 사용됩니다.

단일 항목을 푸시하려면 관련 pushItem 함수를 사용합니다:

참고: 스택에 이미 존재하는 항목은 푸시되지 않습니다.

이 메서드는 Qt 6.7에서 도입되었습니다.

initialItem, pushItem, Pushing Items참조하십시오 .


Item replace(target, item, properties, operation)

스택에 있는 하나 이상의 항목을 지정된 item 및 선택적 operation 으로 대체하고 선택적으로 항목에 properties 세트를 적용합니다. 항목은 Item, Component, 또는 url 일 수 있습니다. 최신이 된 항목을 반환합니다.

StackViewComponent 또는 url 에서 자체 생성한 항목만 팝될 때 삭제됩니다. 자세한 내용은 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.PopTransition팝 전환이 있는 연산( QtQuick.Controls 2.1 이후).

연산이 제공되지 않으면 스택이 비어 있으면 Immediate, 그렇지 않으면 ReplaceTransition 이 사용됩니다.

다음 예는 replace()와 함께 푸시 및 팝 전환을 사용하는 방법을 보여줍니다.

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을 컴파일하는 경우 강력하게 입력된 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.PopTransition팝 전환이 있는 연산입니다.

연산이 제공되지 않으면 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 옵션이 지정되면 해당 전환이 항목에 적용됩니다. 최신이 된 항목을 반환합니다.

StackView 에서 자체 생성한 항목( Component 또는 url)만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산을 제공하지 않으면 ReplaceTransition 이 사용됩니다.

여러 항목을 스택에 푸시하려면 replaceCurrentItem(항목, 연산)을 사용합니다.

이 메서드는 Qt 6.7에 도입되었습니다.

Replacing Items참조하십시오 .


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

이 함수는 replaceCurrentItem()을 오버로드합니다.

currentItem 을 스택에서 꺼내고 component 을 푸시합니다. operation 옵션이 지정되면 관련 전환이 사용됩니다. properties 옵션이 지정되면 해당 전환이 항목에 적용됩니다. 최신이 된 항목을 반환합니다.

StackView 에서 자체 생성한 항목( Component 또는 url)만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산을 제공하지 않으면 ReplaceTransition 이 사용됩니다.

여러 항목을 스택에 푸시하려면 replaceCurrentItem(항목, 연산)을 사용합니다.

이 메서드는 Qt 6.7에 도입되었습니다.

Replacing Items참조하십시오 .


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

이 함수는 replaceCurrentItem()을 오버로드합니다.

currentItem 을 스택에서 꺼내고 url 을 푸시합니다. operation 옵션이 지정되면 관련 전환이 사용됩니다. properties 옵션이 지정되면 해당 전환이 항목에 적용됩니다. 최신이 된 항목을 반환합니다.

StackView 에서 자체 생성한 항목( Component 또는 url)만 팝될 때 삭제됩니다. 자세한 내용은 Item Ownership 을 참조하세요.

선택적으로 operation 을 마지막 인수로 지정할 수 있습니다. 지원되는 연산:

상수설명
StackView.Immediate전환이 없는 즉각적인 연산입니다.
StackView.PushTransition푸시 전환이 있는 연산입니다.
StackView.ReplaceTransition바꾸기 전환이 있는 연산입니다.
StackView.PopTransition팝 전환이 있는 연산입니다.

연산을 제공하지 않으면 ReplaceTransition 이 사용됩니다.

여러 항목을 스택에 푸시하려면 replaceCurrentItem(항목, 연산)을 사용합니다.

이 메서드는 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.