2009-04-25 2 views
3

항목을 삽입하는 QTreeWidget이 있으며 사용자가 정렬 할 열을 선택할 수 있습니다. 항목이 삽입 될 때 정렬이 자동으로 수행되는 대신 끝에 추가됩니다. 오름차순/내림차순으로 전환하려면 머리글을 클릭하면 현재 항목이 정렬됩니다.QTreeWidget의 삽입시 자동 정렬

sortItems()를 호출하고 sortColumn()에서 반환되는 열을 사용할 수 있다고 생각했지만 사용자가 오름차순 또는 내림차순 정렬을 수행하는 경우 어떻게 볼 수 있는지 알 수 없습니다.

저는이 작업의 효율성에 대해 걱정하지 않으므로 삽입이 완료 될 때까지 기다리지 않고 정렬을 수행하고 싶습니다. 실시간 분류 목록을 원합니다.

감사합니다.

답변

2

당신의 트리 위젯이 treeWidget를 호출하면, 당신은 QHeaderView 클래스에서 QTreeWidget의 부모 QTreeView, 다음 sortIndicatorOrder()에서 인 헤더() 메서드를 호출 할 수 있어야한다 :이

treeWidget->header()->sortIndicatorOrder() 

을, 당신은 사용자의 현재 정렬 순서를 알고 있으며, 이에 따라 삽입 할 때 정렬을 적용 할 수 있습니다.

+0

감사합니다. 방금이 기능을 간과 한 것 같습니다. 지금 일하고있다. – staackuser2

2

테스트를위한 설정이 없지만 문서에 따르면 항목이 삽입 될 때 정렬이 발생해야합니다.

... 
treeWidget.sortByColumn(0, Qt::AscendingOrder); // column/order to sort by 
treeWidget.setSortingEnabled(true);    // should cause sort on add 

Qt는 거기에 성능 비용을하고 당신을 추가 완료 모든 후 사용 가능 정렬이 설정해야한다고 말할 것이다으로이 일에 대해 권장합니다. 희망이 도움이됩니다.

+0

삽입시 정렬 할 때 느려짐을 지적하기 위해 +1. 한 번에 한 항목 씩만 추가하고 일괄 적으로 추가하지 않는다면 이는 중요하지 않습니다. –

관련 문제