Repeater QML Type
제공된 모델을 사용하여 여러 항목 기반 컴포넌트를 인스턴스화합니다. 더 보기...
Import Statement: | import QtQuick |
Inherits: |
속성
신호
- itemAdded(int index, Item item)
- itemRemoved(int index, Item item)
방법
- Item itemAt(index)
상세 설명
리피터 유형은 유사한 항목을 많이 만드는 데 사용됩니다. 다른 보기 유형과 마찬가지로 리피터에는 model 및 delegate: 모델의 각 항목에 대해 델리게이트가 모델의 데이터로 시드된 컨텍스트에서 인스턴스화됩니다. 리피터 항목은 일반적으로 Row 또는 Column 같은 포지셔너 유형으로 묶어 리피터에서 만든 여러 델리게이트 항목을 시각적으로 배치합니다.
다음 리피터는 Row 내에 Rectangle 항목의 인스턴스 세 개를 만듭니다:
import QtQuick Row { Repeater { model: 3 Rectangle { width: 100; height: 40 border.width: 1 color: "yellow" } } }
리피터의 model 는 지원되는 데이터 모델 중 어느 것이든 될 수 있습니다. 또한 다른 보기의 델리게이트와 마찬가지로 리피터 델리게이트는 리피터 내의 인덱스와 델리게이트와 관련된 모델 데이터에 액세스할 수 있습니다. 자세한 내용은 delegate 속성 설명서를 참조하세요.
리피터에 의해 인스턴스화된 항목은 순서대로 리피터 상위의 하위 항목으로 삽입됩니다. 삽입은 부모 스태킹 목록에서 리피터의 위치 바로 다음부터 시작됩니다. 이렇게 하면 레이아웃 내에서 리피터를 사용할 수 있습니다. 예를 들어, 다음 리피터의 항목은 빨간색 직사각형과 파란색 직사각형 사이에 쌓여 있습니다:
Row { Rectangle { width: 10; height: 20; color: "red" } Repeater { model: 10 Rectangle { width: 20; height: 20; radius: 10; color: "green" } } Rectangle { width: 10; height: 20; color: "blue" } }
참고: 리피터 항목은 인스턴스화하는 모든 항목을 소유합니다. 리피터가 만든 항목을 제거하거나 동적으로 파괴하면 예측할 수 없는 동작이 발생합니다.
리피터 사용 시 고려 사항
리피터 유형은 리피터가 처음 만들어질 때 모든 델리게이트 항목을 만듭니다. 이는 많은 수의 위임 항목이 있고 모든 항목을 동시에 표시할 필요가 없는 경우 비효율적일 수 있습니다. 이 경우에는 ListView (보기로 스크롤할 때만 델리게이트 항목을 만드는 보기 유형)와 같은 다른 보기 유형을 사용하거나 Dynamic Object Creation 메서드를 사용하여 필요한 만큼 항목을 만드는 것이 좋습니다.
또한 Repeater는 Item 기반이며 Item 파생 개체만 반복할 수 있다는 점에 유의하세요. 예를 들어, QtObject를 반복하는 데는 사용할 수 없습니다:
// bad code: Item { // Can't repeat QtObject as it doesn't derive from Item. Repeater { model: 10 QtObject {} } }
속성 문서
count : int |
이 속성은 모델의 항목 수를 보유합니다.
참고: 리피터가 델리게이트를 인스턴스화하는 중이거나 잘못 설정된 경우 카운트로 보고되는 모델의 항목 수는 생성된 델리게이트의 수와 다를 수 있습니다.
delegate : Component |
델리게이트는 리피터가 인스턴스화한 각 항목을 정의하는 템플릿을 제공합니다.
대리인은 리피터 내에서 대리인의 인덱스를 나타내는 읽기 전용 index
프로퍼티에 노출됩니다. 예를 들어 다음 Text 델리게이트는 반복되는 각 항목의 인덱스를 표시합니다:
model 가 문자열 목록 또는 객체 목록인 경우, 델리게이트는 문자열 또는 객체 데이터를 보유하는 읽기 전용 modelData
속성에도 노출됩니다. 예를 들어
model 이 모델 객체(예: ListModel)인 경우 델리게이트는 ListView 과 같은 보기 클래스에 대해 델리게이트가 하는 것과 동일한 방식으로 모든 모델 역할에 명명된 속성으로 액세스할 수 있습니다.
QML 데이터 모델도참조하십시오 .
model : var |
리피터에 데이터를 제공하는 모델입니다.
이 속성은 지원되는 모든 데이터 모델로 설정할 수 있습니다:
- 리피터가 만들 델리게이트의 수를 나타내는 숫자
- 모델(예: ListModel 항목 또는 QAbstractItemModel 하위 클래스)
- 문자열 목록
- 객체 목록
모델 유형은 delegate 에 노출되는 속성에 영향을 줍니다.
데이터 모델도참조하세요 .
신호 문서
이 신호는 항목이 리피터에 추가될 때 발생합니다. index 매개변수는 항목이 리피터 내에 삽입된 인덱스를 담고, item 매개변수는 추가된 Item 을 담고 있습니다.
참고: 해당 핸들러는 onItemAdded
입니다.
이 신호는 항목이 리피터에서 제거될 때 발생합니다. index 파라미터는 항목이 리피터에서 제거된 인덱스를, item 파라미터는 제거된 Item 을 보유합니다.
이 리피터에 의해 만들어진 item 참조는 신호가 처리된 직후 삭제되므로 보관하지 마세요.
참고: 해당 핸들러는 onItemRemoved
입니다.
메서드 문서
© 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.