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를 사용하는 방법은 Window의 자식 요소로 추가하는 것만큼 간단합니다. 스택은 일반적으로 창의 가장자리에 고정되지만, 상단이나 하단의 경우 상태 표시줄이나 그와 유사한 UI 구성 요소에 고정될 수 있습니다. 그런 다음 스택의 탐색 메서드를 호출하여 스택을 사용할 수 있습니다. StackView에 가장 먼저 표시되는 항목은 initialItem 에 할당된 항목이거나, initialItem 가 설정되지 않은 경우 최상위 항목입니다.
기본 탐색
StackView는 세 가지 주요 탐색 작업인 ` push()`, ` pop()`, ` replace()`를 지원합니다. 이는 "push"가 스택의 맨 위에 항목을 추가하고, "pop"이 스택의 맨 위 항목을 제거하며, "replace"는 pop에 이어 push를 수행하는 것과 같아서 맨 위 항목을 새 항목으로 대체하는 기존의 스택 작업에 해당합니다. 스택의 최상위 항목은 currently 화면에서 보이는 항목에 해당합니다. 논리적으로 "push"는 애플리케이션 UI에서 앞으로 또는 더 깊은 곳으로 이동하고, "pop"은 뒤로 이동하며, "replace"는 currentItem 을 대체합니다.
항목 푸시하기
다음 애니메이션에서는 push() 함수를 사용하여 세 개의 Label 컨트롤이 스택 뷰에 푸시됩니다:
이제 스택에는 다음과 같은 항목들이 포함되어 있습니다: [A, B, C].
참고: 스택이 비어 있을때 (일반적으로 애플리케이션 시작 시) push() 작업은 전환할 대상이 없으므로 전환 애니메이션이 표시되지 않습니다.
항목 제거
위의 예제를 이어가면, pop()을 호출하여 스택의 최상위 항목을 제거합니다:
이제 스택에는 다음 항목들이 포함됩니다: [A, B].
Pop을 통한 항목 역추적
때로는 스택에서 한 단계 이상 뒤로 돌아가야 할 필요가 있습니다. 예를 들어, 애플리케이션의 “메인” 항목이나 특정 섹션 항목으로 돌아가야 할 때입니다. 이러한 경우, pop()의 매개변수로 항목을 지정할 수 있습니다. 이를 “언와인드(unwind)” 연산이라고 하며, 스택은 지정된 항목까지 역순으로 추적합니다. 항목을 찾지 못하면, 스택은 항목이 하나만 남을 때까지 풀리며, 이 항목이 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 사이의 "replace" 전환 애니메이션
- 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));전환
각 push 또는 pop 연산마다, 스택에 들어오고 나가는 항목에 서로 다른 전환 애니메이션이 적용됩니다. 이러한 애니메이션은 들어오는 항목이 어떻게 들어와야 하고, 나가는 항목이 어떻게 나가야 하는지를 정의합니다. StackView의 pushEnter, pushExit, popEnter, popExit, replaceEnter 및 replaceExit 속성에 서로 다른 Transitions 를 할당하여 애니메이션을 사용자 정의할 수 있습니다.
참고: 전환애니메이션은 서로의 전환 동작에 영향을 미칩니다. 한 애니메이션만 사용자 정의하고 다른 애니메이션은 그대로 두면 예상치 못한 결과가 발생할 수 있습니다.
다음 코드 조각은 push 및 pop 연산에 대한 간단한 페이드 전환을 정의합니다:
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가 파기될 때만 출력됩니다:
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에 의해 소멸됩니다:
Component {
id: itemComponent
Item {
Component.onDestruction: print("Destroying second item")
}
}
StackView {
initialItem: "Item1.qml"
Component.onCompleted: push(itemComponent)
}크기
StackView는 스택에 푸시된 항목으로부터 암시적인 크기를 상속받지 않습니다. 즉, 예를 들어 Dialog 의 contentItem 로 사용하면 예상대로 작동하지 않습니다:
이러한 상황에서 StackView에 크기를 보장하는 방법에는 여러 가지가 있습니다:
- StackView 자체에 ` implicitWidth `와 ` implicitHeight `을 설정합니다.
- Rectangle 에 implicitWidth 와 implicitHeight 를 설정합니다.
- Dialog에 contentWidth 와 contentHeight 를 설정합니다.
- Dialog의 크기를 지정합니다.
Qt Quick Controls 의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 가 생성될 때 표시되어야 할 초기 항목을 지정합니다. 초기 항목은 Item, Component 또는 url 일 수 있습니다. 초기 항목을 지정하는 것은 다음 코드와 동일합니다:
Component.onCompleted: stackView.push(myInitialItem)push()도 참조하십시오 .
popEnter : Transition
이 속성은 스택에서 다른 항목이 제거될 때 스택에 추가되는 항목에 적용되는 전환 효과를 지정합니다.
'StackView 사용자 정의' 항목도 참조하십시오 .
popExit : Transition
이 속성은 스택에서 항목이 팝(pop)될 때, 스택을 떠나는 항목에 적용되는 전환 효과를 저장합니다.
'StackView 사용자 정의' 항목도 참조하십시오 .
pushEnter : Transition
이 속성은 항목이 스택에 푸시될 때, 스택에 들어오는 항목에 적용되는 전환 효과를 저장합니다.
'StackView 사용자 정의' 항목도 참조하십시오 .
pushExit : Transition
이 속성은 스택에 다른 항목이 삽입될 때 스택에서 제거되는 항목에 적용되는 전환 효과를 지정합니다.
'StackView 사용자 정의' 항목도 참조하십시오 .
replaceEnter : Transition
이 속성은 다른 항목이 해당 항목으로 대체될 때 스택에 들어오는 항목에 적용되는 전환 효과를 지정합니다.
'StackView 사용자 정의' 항목도 참조하십시오 .
replaceExit : Transition
이 속성은 스택에서 나가는 항목이 다른 항목으로 대체될 때 적용되는 전환 효과를 저장합니다.
'StackView 사용자 지정' 항목도 참조하십시오 .
부속 속성 설명서
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 attached]
이 첨부 속성은 해당 항목의 스택 뷰를 포함하며, 해당 항목이 스택에 속해 있지 않은 경우에는 ` null `를 포함합니다.
StackView.visible : bool [attached, 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)에서 도입되었습니다.
첨부된 시그널 문서
[attached, since QtQuick.Controls 2.1 (Qt 5.8)] activated()
이 부착된 신호는 스택 내에서 이 신호가 부착된 아이템이 활성화될 때 발생합니다.
참고: 해당 핸들러는 onActivated 입니다.
이 신호는 QtQuick.Controls 2.1(Qt 5.8)에서 도입되었습니다.
status도 참조하십시오 .
[attached, since QtQuick.Controls 2.1 (Qt 5.8)] activating()
이 부착된 신호는, 이 신호가 부착된 아이템이 스택 내에서 활성화되는 과정에 있을 때 발생합니다.
참고: 해당 핸들러는 onActivating 입니다.
이 신호는 QtQuick.Controls 2.1(Qt 5.8)에서 도입되었습니다.
status도 참조하십시오 .
[attached, since QtQuick.Controls 2.1 (Qt 5.8)] deactivated()
이 부착된 신호는 스택에서 이 신호가 부착된 아이템이 비활성화될 때 발생합니다.
참고: 해당 핸들러는 onDeactivated 입니다.
이 신호는 QtQuick.Controls 2.1(Qt 5.8)에서 도입되었습니다.
status도 참조하십시오 .
[attached, since QtQuick.Controls 2.1 (Qt 5.8)] deactivating()
이 부착된 신호는, 이 신호가 부착된 항목이 스택에서 비활성화되는 과정에서 발생합니다.
참고: 해당 핸들러는 onDeactivating 입니다.
이 신호는 QtQuick.Controls 2.1(Qt 5.8)에서 도입되었습니다.
status도 참조하십시오 .
[attached, 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)
스택에서 모든 항목을 제거합니다.
StackView 가 직접 생성한 항목( Component 또는 url 에서 생성된 항목)만 팝될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
QtQuick.Controls 2.3부터는 선택적으로 transition 를 지정할 수 있습니다. 지원되는 전환:
| Constant | 설명 |
|---|---|
StackView.Immediate | 전환 없이 스택을 즉시 비웁니다(기본값). |
StackView.PushTransition | 'push' 전환을 사용하여 스택을 지웁니다. |
StackView.ReplaceTransition | replace 전환을 사용하여 스택을 지웁니다. |
StackView.PopTransition | 팝(pop) 전환 효과와 함께 스택을 지웁니다. |
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 까지(이 항목은 제외)의 모든 항목이 팝됩니다. item 가 null 인 경우, 첫 번째 항목까지(이 항목은 제외)의 모든 항목이 팝됩니다. 지정되지 않으면 현재 항목만 팝됩니다.
참고: 깊이가 1이거나 0인 스택에서 pop()연산을 수행하면 아무 작업도 수행되지 않습니다. 이러한 경우, clear() 메서드를 사용하여 스택을 비울 수 있습니다.
StackView 이 직접 생성한( Component 또는 url 를 통해) 항목만 팝(pop) 시 파기됩니다. 자세한 내용은 Item Ownership 을 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산( QtQuick.Controls 2.1부터). |
StackView.ReplaceTransition | replace 전환을 사용하는 연산( 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을 컴파일하는경우 , 대신 강타입인 popToItem, popToIndex 또는 popCurrentItem 함수를 사용하십시오.
clear(), Popping Items 및 Unwinding Items via Pop도 참조하십시오 .
[since 6.7] Item popCurrentItem(operation)
스택에서 ` currentItem `를 팝합니다. 스택에서 마지막으로 제거된 항목을 반환하며, ` depth `가 ` 1`인 경우 ` null `를 반환합니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, 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 가 반환됩니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 소멸됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 작업입니다. |
StackView.ReplaceTransition | replace 전환을 포함하는 연산. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ` 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 까지(해당 값은 제외) 스택에서 제거합니다. 스택에서 마지막으로 제거된 항목을 반환합니다.
item 가 null 인 경우, 경고가 발생하고 null 가 반환됩니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 소멸됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산입니다. |
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 | replace 전환을 사용하는 연산( QtQuick.Controls 2.1부터). |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산( QtQuick.Controls 2.1부터). |
연산이 지정되지 않은 경우, 스택이 비어 있으면 Immediate 가 사용되며, 그렇지 않으면 PushTransition 가 사용됩니다.
참고: 스택에 이미 존재하는항목은 푸시되지 않습니다.
참고: QML을 컴파일하는경우 , 대신 강력한 유형의 pushItem 또는 pushItems 함수를 사용하십시오.
initialItem 및 Pushing Items도 참조하십시오 .
[since 6.7] Item pushItem(item, properties, operation)
item 를 스택에 밀어 넣으며, 선택 사항으로 properties 세트를 적용하고, 선택 사항인 operation 를 사용합니다. 현재 항목(마지막 항목)이 된 항목을 반환합니다.
선택적으로 마지막 인자로 operation 을 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ` PushTransition `가 사용됩니다.
여러 항목을 스택에 푸시하려면 pushItems()를 사용하십시오.
이 메서드는 Qt 6.7에서 도입되었습니다.
initialItem 및 Pushing Items도 참조하십시오 .
[since 6.7] Item pushItem(component, properties, operation)
component 를 스택에 밀어 넣고, 선택적으로 properties 세트를 적용하며, 선택적 operation 를 사용합니다. 현재 항목(마지막 항목)이 된 항목을 반환합니다.
선택적으로 마지막 인자로 operation 를 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산. |
StackView.PopTransition | 팝 전환이 포함된 연산. |
연산이 지정되지 않은 경우, PushTransition 가 사용됩니다.
스택에 여러 항목을 푸시하려면 pushItems()를 사용하십시오.
이 함수는 pushItem()을 오버로드합니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
initialItem 및 Pushing Items도 참조하십시오 .
[since 6.7] Item pushItem(url, properties, operation)
url 를 스택에 밀어 넣으며, 선택적으로 operation 을 사용하여 properties 세트를 적용할 수 있습니다. 현재 항목(마지막 항목)이 된 항목을 반환합니다.
선택적으로 마지막 인자로 operation 를 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉각적인 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산입니다. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ` PushTransition `가 사용됩니다.
스택에 여러 항목을 푸시하려면 pushItems()를 사용하십시오.
이 함수는 pushItem()을 오버로드합니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
initialItem 및 Pushing 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 | replace 전환을 사용하는 연산. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ` PushTransition `가 사용됩니다.
단일 항목을 푸시하려면 해당 ` pushItem ` 함수를 사용하십시오:
- pushItem(항목, 속성, 연산)
- pushItem(component, properties, operation)
- pushItem(url, properties, operation)
참고: 스택에 이미 존재하는항목은 추가되지 않습니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
initialItem, pushItem 및 Pushing Items도 참조하십시오 .
Item replace(target, item, properties, operation)
스택에 있는 하나 이상의 항목을 지정된 ` item ` 및 선택 사항인 ` operation`로 대체하고, 선택적으로 해당 항목에 ` properties ` 세트를 적용합니다. 항목은 ` Item`, ` Component` 또는 ` url`일 수 있습니다. 현재 항목이 된 항목을 반환합니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝(pop)될 때 파기됩니다. 자세한 내용은 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 | replace 전환이 포함된 연산( 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을 컴파일하는경우 , 대신 강타입 replaceCurrentItem 함수를 사용하십시오.
push() 및 Replacing Items도 참조하십시오 .
[since 6.7] Item replaceCurrentItem(items, operation)
스택에서 ` currentItem `를 꺼내고 ` items`를 밀어 넣습니다. 선택적 매개변수 ` operation `가 지정된 경우, 해당 전환이 사용됩니다. 각 항목 뒤에는 해당 항목에 적용될 선택적 속성 집합이 따라올 수 있습니다. 현재 항목이 된 항목을 반환합니다.
선택적 속성 인수는 각 항목 뒤에 오며, 초기 속성 값의 맵을 지정합니다. 동적으로 생성된 항목의 경우, 이러한 값은 생성 과정이 완료되기 전에 적용됩니다. 이는 생성 후 속성 값을 설정하는 것보다 더 효율적이며, 특히 대량의 속성 값 집합이 정의된 경우에 유용합니다. 또한 항목이 생성되기 전에 ( Qt.binding())를 사용하여 속성 바인딩을 설정할 수 있게 해줍니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝(pop)될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인수로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 작업입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산입니다. |
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(component, properties, operation)
- replaceCurrentItem(url, properties, operation)
이 메서드는 Qt 6.7에서 도입되었습니다.
push() 및 Replacing Items도 참조하십시오 .
[since 6.7] Item replaceCurrentItem(item, properties, operation)
스택에서 currentItem 를 팝하고 item 를 푸시합니다. 선택적 매개변수 operation 가 지정된 경우, 해당 전환이 사용됩니다. 선택적 매개변수 properties 가 지정된 경우, 해당 매개변수가 항목에 적용됩니다. 현재 항목이 된 항목을 반환합니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 작업입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산입니다. |
StackView.PopTransition | 팝(pop) 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ReplaceTransition 가 사용됩니다.
여러 항목을 스택에 푸시하려면 replaceCurrentItem(items, operation)을 사용하십시오.
이 함수는 replaceCurrentItem()을 오버로드합니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
Replacing Items도 참조하십시오 .
[since 6.7] Item replaceCurrentItem(component, properties, operation)
스택에서 currentItem 를 꺼내고 component 를 밀어 넣습니다. 선택 사항인 operation 가 지정된 경우, 해당 전환이 사용됩니다. 선택 사항인 properties 가 지정된 경우, 해당 속성이 항목에 적용됩니다. 현재 항목이 된 항목을 반환합니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산. |
StackView.ReplaceTransition | replace 전환이 포함된 연산. |
StackView.PopTransition | 팝 전환이 포함된 연산. |
연산이 지정되지 않은 경우, ` ReplaceTransition `가 사용됩니다.
여러 항목을 스택에 푸시하려면 replaceCurrentItem(items, operation)을 사용하십시오.
이 함수는 replaceCurrentItem()을 오버로드합니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
Replacing Items도 참조하십시오 .
[since 6.7] Item replaceCurrentItem(url, properties, operation)
스택에서 ` currentItem `를 제거하고 ` url`를 추가합니다. 선택 사항인 ` operation `가 지정된 경우, 해당 전환이 사용됩니다. 선택 사항인 ` properties `가 지정된 경우, 해당 속성이 항목에 적용됩니다. 현재 항목이 된 항목을 반환합니다.
StackView 가 직접 생성한( Component 또는 url 를 통해) 항목만 팝될 때 파기됩니다. 자세한 내용은 Item Ownership 를 참조하십시오.
operation 는 선택적으로 마지막 인자로 지정할 수 있습니다. 지원되는 연산:
| 상수 | 설명 |
|---|---|
StackView.Immediate | 전환이 없는 즉시 실행되는 연산입니다. |
StackView.PushTransition | 푸시 전환이 포함된 연산입니다. |
StackView.ReplaceTransition | replace 전환이 포함된 연산입니다. |
StackView.PopTransition | 팝(pop) 전환이 포함된 작업. |
연산이 지정되지 않은 경우, ` ReplaceTransition `가 사용됩니다.
여러 항목을 스택에 푸시하려면 replaceCurrentItem(items, operation)을 사용하십시오.
이 함수는 replaceCurrentItem()을 오버로드합니다.
이 메서드는 Qt 6.7에서 도입되었습니다.
Replacing Items도 참조하십시오 .
© 2026 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.