2014-10-21 2 views
0

QAbstractItemModel을 기반으로하는 사용자 정의 모델의 내용을 표시하는 사용자 정의 QTableView 클래스가 있습니다. 이 모델에서는 DragAndDrop (dropMimeData() 사용)을 사용하여 행 순서를 변경하는 데 필요한 모든 메소드를 구현했습니다.행을 드래그 한 후 QTableView에서 선택 항목을 업데이트하는 방법

그러나 모델 (및보기)을 변경 한 후에보기에서 선택 사항을 업데이트하는 방법을 모르겠습니다. 예 : 사용자가 행을 클릭하면 'selected'가됩니다. 사용자가이 행을 다른 위치로 드래그합니다.
행이 모델 및 뷰에서 스왑됩니다.

BUT 선택은 첫 번째로 선택된 행에 그대로 있습니다.

모델이보기를 변경하여 선택 사항을 변경하는 방법은 무엇입니까?

참고 : MOC를 사용하지 않으므로 추가 신호 및 슬롯을 만들 수 없습니다.

+0

'QItemSelectionModel' 문서를보십시오. – mhcuervo

답변

0

용액이다

기능 dropMimeData()에서
  1. 데이터 변경 곳에 자리 주위 beginMoveRows()andMoveRows()을 사용할 필요가있다.
  2. 목표 행의 색인을 검색 할 수있는 모델의 QAbstractItemModel::rowsMoved 신호를 처리해야합니다.
관련 문제