DelegateModelGroup QML Type
필터링된 시각적 데이터 항목 집합을 캡슐화합니다. 자세히...
Import Statement: | import QtQml.Models |
속성
- count : int
- includeByDefault : bool
- name : string
신호
- changed(array removed, array inserted)
방법
- addGroups(int index, int count, stringlist groups)
- create(int index)
- create(jsdict data, array groups)
- create(int index, jsdict data, array groups)
- object get(int index)
- insert(jsdict data, var groups)
- insert(int index, jsdict data, array groups)
- move(var from, var to, int count)
- remove(int index, int count)
- removeGroups(int index, int count, stringlist groups)
- resolve(int from, int to)
- setGroups(int index, int count, stringlist groups)
상세 설명
델리게이트모델그룹 유형은 DelegateModel 의 델리게이트 항목의 모델 데이터를 처리하고 이러한 델리게이트 항목을 정렬 및 필터링할 수 있는 수단을 제공합니다.
DelegateModel 의 인스턴스화 가능한 델리게이트 항목의 초기 집합은 items 그룹으로 표시되며, 일반적으로 DelegateModel::model 에 할당된 모델의 내용을 직접 반영합니다. 이 집합은 해당 델리게이트모델그룹의 name 를 DelegateModel::filterOnGroup 속성에 할당하여 DelegateModel::groups 의 다른 멤버의 콘텐츠로 변경할 수 있습니다.
모델 데이터뿐만 아니라 그룹 멤버십 및 인덱스에 대한 정보를 반환하는 get() 함수를 사용하여 DelegateModelGroup에 있는 항목의 데이터에 액세스할 수 있습니다. move () 함수와 함께 뷰 정렬을 구현하거나 remove()를 사용하여 뷰에서 항목을 필터링하거나 setGroups() 및 Package 델리게이트와 함께 항목을 다른 뷰로 분류하는 데 사용할 수 있습니다. 서로 다른 그룹은 분리된 경우에만 독립적으로 정렬할 수 있습니다. 한 그룹에서 항목을 이동하면 해당 항목이 속한 다른 모든 그룹에서도 이동합니다.
insert() 함수를 사용하여 DelegateModelGroup에 직접 데이터를 삽입하여 모델의 데이터를 보완할 수 있습니다. 이를 사용하여 뷰에 모의 항목을 도입하거나 나중에 실제 모델 데이터를 사용할 수 있게 되면 resolved 에 플레이스홀더 항목을 삽입할 수 있습니다.
델리게이트 항목은 create() 함수를 사용하여 DelegateModelGroup에서 직접 인스턴스화할 수도 있으므로 뷰 유형 없이 DelegateModel 을 사용하거나 현재 뷰의 표시 영역 내에 있는지 여부에 관계없이 인스턴스화해야 하는 특정 항목을 선택할 수 있습니다.
QML 동적 뷰 순서 지정 자습서를참조하십시오 .
속성 문서
count : int |
이 속성은 그룹에 있는 항목 수를 보유합니다.
includeByDefault : bool |
이 속성은 새 항목이 기본적으로 이 그룹에 할당되는지 여부를 보유합니다.
name : string |
이 속성은 그룹의 이름을 보유합니다.
모델의 각 그룹은 소문자로 시작하는 고유한 이름을 가져야 합니다.
신호 문서
changed(array removed, array inserted) |
이 신호는 그룹에서 항목이 제거되거나 그룹에 삽입될 때 발생합니다.
removed 및 inserted 배열의 각 객체에는 삽입 또는 제거된 첫 번째 항목의 인덱스와 삽입 또는 제거된 연속 항목의 개수라는 두 가지 값이 있습니다.
각 인덱스는 삽입된 항목보다 먼저 제거된 모든 항목의 이전 변경 사항에 대해 조정됩니다.
참고: 해당 핸들러는 onChanged
입니다.
메서드 문서
DelegateModel 에 DelegateModel::model 에 할당된 모델의 역할에 해당하는 data 의 값을 사용하여 index 에 새 항목을 만듭니다.
인덱스가 제공되지 않으면 데이터가 모델에 추가됩니다.
선택 사항인 groups 매개변수는 새 항목이 속해야 하는 그룹을 식별하며, 지정하지 않으면 그룹 삽입이 호출된 그룹과 동일합니다.
DelegateModel 에 삽입된 데이터는 나중에 resolve() 함수를 사용하여 DelegateModel::model 의 기존 항목과 병합할 수 있습니다. 이 함수는 나중에 실제 데이터로 대체되는 플레이스홀더 항목을 만드는 데 사용할 수 있습니다.
그룹 내 index 에서 인스턴스화된 항목에 대한 참조를 반환합니다.
data 객체가 제공되면 index 에서 inserted 이 새 항목을 참조하는 항목이 반환됩니다. 선택적 groups 매개변수는 새 항목이 속할 그룹을 식별하며, 지정하지 않으면 create()가 호출된 그룹과 동일합니다.
create로 반환된 모든 항목은 persistedItems 그룹에 추가됩니다. 이 그룹의 항목은 보기에서 참조하지 않을 때 인스턴스화된 상태로 유지됩니다.
object get(int index) |
그룹의 index 에 있는 항목을 설명하는 자바스크립트 객체를 반환합니다.
반환된 객체에는 해당 항목의 모델뿐만 아니라 첨부된 DelegateModel 에서 델리게이트가 사용할 수 있는 것과 동일한 정보가 포함되어 있습니다. 속성은 다음과 같습니다:
- 모델 항목의 모델 데이터입니다. 이는 델리게이트의 모델 컨텍스트 속성과 동일합니다.
- 그룹 항목이 속해 있는 그룹의 이름 목록입니다. 이 속성을 작성하여 항목의 멤버십을 변경할 수 있습니다.
- inItems 항목이 items 그룹에 속하는지 여부입니다. 이 속성에 쓰면 그룹에서 항목이 추가되거나 제거됩니다.
- itemsIndex items 그룹 내 항목의 인덱스입니다.
- in<그룹명> 항목이 동적 그룹 groupName에 속하는지 여부입니다. 이 속성에 쓰면 그룹에서 항목이 추가되거나 제거됩니다.
- <그룹명>인덱스 동적 그룹 groupName 내 항목의 인덱스입니다.
- isUnresolved 항목이 DelegateModel::model 에 할당된 모델의 인덱스에 바인딩되어 있는지 여부입니다. 항목이 모델에 바인딩되어 있지 않으면 참을 반환하고, 바인딩되어 있으면 거짓을 반환합니다.
count 을 from 그룹 to 의 새 위치로 이동합니다.
참고: DelegateModel 은 대리 모델 역할을 하며 underlying model 과는 다른 순서로 위임자를 보유합니다. 이후 기본 모델을 변경해도 이 함수를 통해 수행한 재정렬은 취소되지 않습니다.
from 의 해결되지 않은 항목을 색인 to 의 DelegateModel::model 에 있는 항목에 바인딩합니다.
해결되지 않은 항목은 DelegateModel::model 인덱스에서 파생되지 않고 DelegateModelGroup 에 inserted 로 데이터가 있는 항목입니다. 항목을 해결하면 대상 인덱스의 항목이 해결되지 않은 항목으로 바뀝니다. 해결된 항목은 바인딩된 인덱스에 소스 모델의 데이터를 반영하며 다른 항목과 마찬가지로 인덱스가 이동할 때 이동합니다.
DelegateModelGroup onChanged() 핸들러에서 새 항목이 교체되면 삽입 및 교체가 원자 연산으로 뷰에 전달되어 모델 콘텐츠가 변경되지 않은 것처럼 보이거나 미해결 항목과 모델 항목이 인접하지 않은 경우 이전에 미해결 항목이 단순히 이동한 것처럼 보입니다.
index 에서 시작하는 count 항목의 그룹 멤버십을 변경합니다. 항목이 기존 그룹에서 제거되고 groups 에 추가됩니다.
© 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.