제품 개체 목록 (행)이 있으며 각 개체에는 제품 ID, 제품군 등의 여러 데이터 필드가 있습니다. QAbstractTableModel을 서브 클래 싱하는 테이블 모델을 생성하고 QTableView에 데이터를 표시했습니다.Qt 모델의 트리보기 및 테이블보기
내가 원하는 것은 나무와 같은 구조로 모델의 "그룹화 된"보기를 제공하는 것입니다. 예를 들어 제품을 가족 ID로 그룹화하려면 트리에서 그룹 (가족 ID)의 첫 번째 단계에 제품 ID가 해당 가족 ID를 포함해야합니다.
아이디어가 있으십니까?
추 신 : 여러 그룹화 (패밀리 ID로 그룹화하고 다른 열로 그룹화) 등을 통해 모델이 트리가되어야 함을 알 수 있습니다. 루트 노드는 그룹을 나타내며 하위 노드는 그룹 구성원입니다. 다중 그룹화는 다중 레벨 트리에 의해 달성 될 수 있습니다.
내 변환 된 질문은 다음과 같습니다. 어떻게 트리의 리프 (지정된 수준에서) 만 표시하는 특수 QTableView 클래스를 구현할 수 있습니까? (사실 leafs는 우리가 그리드에서보고자하는 실제 객체이므로)
tableview에서 setRootIndex를 사용할 수 있지만 아무 것도 해결하지 못하고 다른 리프가 표시되지 않습니다.
I 조금 파고, 각 행과 열을 표시 할 때 QTableView :: paintEvent에서, 실제 상품 추천 페치 것을 발견 하였다
CONST QModelIndex 인덱스 = D-> 모델 -> 지수 (행, 열, d-> 루트);
여기서 d-> root()는 setRootIndex()에 의해 주어진 루트 노드입니다. 이것은 트리 트래버 설 코드에 내장되어야하며 모든 것이 잘 될 것입니다. 그러나 어떻게하면 paintEvent 메서드 전체를 다시 구현하지 않아도됩니까?
동일한 방법으로 (예 : 가족 ID로) 그룹화 하시겠습니까? 아니면 정렬 순서가 변경 될 때 그룹을 변경 하시겠습니까? 첫 번째 문장은 꽤 간단하고 두 번째 문장은 그렇지 않은 문장이어야합니다. –
나는 단순한 트리 모델을 만들고 다른 뷰를 위해 설정했다. 아래 예제는 트리 뷰를보고 싶지만 테이블 뷰에서는 familys가 아닌 제품을 보게됩니다. 테이블보기가 모델의 두 번째 레벨 노드를 보는 것을 어떻게 설정할 수 있습니까? 코드는 여기에서 찾을 수 있습니다. http://www.stud.u-szeged.hu/Veress.Krisztian/main.cpp –
여기에 코드를 게시하면 검색 가능하고 모든 사람이 볼 수있게됩니다. –