2012-12-21 2 views
0

나는 QTable보기를 생성하고 그것을 QSqlTableModel에 연결하고 나는 데이터베이스에서 retrived 결과 쿼리를 표시하고 있습니다. QTable보기에서 나는 sortEnabled 옵션을 활성화했습니다. 모든 예상 결과는 인쇄하지만 정렬 표시기 을 클릭하면 테이블의 전체 데이터가 비어있게됩니다. 아무도 나에게이 문제를 극복 할 수있는 방법을 제안 할 수 있습니까?PyQt4 정렬 QTableView 항목

이것은 결과 테이블의 스냅 샷입니다.

snap shot of the results

정렬 표시를 누른 후 결과 테이블의 스냅 샷입니다.

results after pressing sort indicator

어느 한 방법 QTableView의 setSortingEnabled 방법이 작동하지 않는 이유

+0

코드를 게시하십시오. 이미지만으로 어떤 일이 벌어지고 있는지 말하기는 매우 어렵습니다. –

답변

1

알아낼 방법이 문제를 해결하기 위해 저를 제안 할 수 있습니다, 그것은 QAbstractItemModel의 정렬 방법이 구현되지 않습니다 밝혀졌습니다. 따라서 직접 구현해야합니다.

한 가지 해결책은 QAbstract 뷰를 만드는 것입니다. 아래는 code snippet입니다.

이것이 정렬 방법을 구현하는 가장 좋은 방법인지 잘 모르겠지만 그 밖의 다른 것을 찾지 못했습니다.

+0

내가보기에 사용자 정의 모델 서브 클래스가 아닌보기를 만드는 것이 좋습니다. 보기는 스 니펫에 따라 동일하게 유지됩니다. 모델은 커스텀'sort' 메소드를 얻습니다. 또한 ...'QSqlTableModel' 정렬이 구현되었습니다. 'QAbstractItemModel'은 그렇지 않습니다. 그래서 이것이 정확히 이유인지 확신 할 수 없습니다. – jdi

+0

@jdi 맞습니다. 뷰는 변경되지 않지만 QAbstractItemModel은 정렬 할 정렬을 구현합니다. – Rao