2013-09-28 3 views
4

현재 QSortFilterProxyModel에서 파생 된 클래스에 테이블 뷰가 연결되어 있습니다. 이제 사용자가 열을 앞뒤로 움직이는 경향이 있으므로 열 순서를 저장할 수있는 방법이 있는지 알고 싶었습니다. 또한 사용자가 columns.I 검색 this의 순서를 변경할 때 방출되는 신호가 있지만 전화가 주위에 이동했을 때 내가 어떻게 tablew 열 순서를 저장할 수있는 아무것도 찾을 수 없습니다. 모든 상담을 환영합니다열 순서를 저장하는 방법이 있습니까?

답변

4

약 6-7 년 된 문서를 확인 중이므로 문서에서 관련 신호를 찾을 수없는 이유입니다. 즉, 그것은 Qt 4.1입니다. 해당 신호는 버전 4.6에서 Qt에 추가되었습니다.

QAbstractItemModel 최근에이 신호를 가지고

공극 QAbstractItemModel :: columnsMoved [신호]

이 신호 (CONST은 &가 sourceParent, INT sourceStart가, INT sourceEnd, CONST은 & destinationParent, INT destinationColumn을 QModelIndex QModelIndex) 모델 내에서 열이 이동 된 후에 출력됩니다. 지정된 sourceParent 항목 아래의 sourceStart와 sourceEnd 사이의 항목이 destinationColumn 열에서 시작하는 destinationParent로 이동되었습니다.

참고 :이 신호에 연결된 구성 요소는 모델 크기의 변경 사항을 적용하기 위해이 신호를 사용합니다. QAbstractItemModel 구현에 의해서만 생성 될 수 있으며 서브 클래스 코드에서 명시 적으로 생성 될 수 없습니다.

이 기능은 QtCore 4.6에서 추가되었습니다.

이것은 당신이 찾고있는 것과 같습니다. 자세한 내용은 설명서를 참조하십시오 :

또한

http://qt-project.org/doc/qt-5.0/qtcore/qabstractitemmodel.html#columnsMoved

, 당신은 실제로 하루의 끝에서 QAbstractTableModel을해야한다는 사실을 잊지 마세요.

당신이 정말로 원하는 경우, 당신은뿐만 아니라이 신호를 잡을 수 :

무효 QHeaderView :: sectionMoved (INT logicalIndex, INT oldVisualIndex, INT newVisualIndex)이 신호가 방출되는

[신호] 섹션이 이동합니다. 섹션의 논리적 인덱스는 logicalIndex, oldVisualIndex의 이전 인덱스 및 newVisualIndex의 새 인덱스 위치로 지정됩니다.

자세한 내용은 설명서를 참조하십시오 :

http://qt-project.org/doc/qt-5.1/qtwidgets/qheaderview.html#sectionMoved

5

QTableView::horizontalHeader을 사용하여 QHeaderView 개체를 얻어야합니다. QHeaderView::saveStateQHeaderView::restoreState을 사용하여 열의 상태를 저장할 수 있습니다. QHeaderView::sectionMoved 신호를 사용하여 열 이동을 감지 할 수 있습니다.

관련 문제