QTableView :: setModel()에 대한 호출을 사용하여 QAbstractTableModel에서 상속 한 내 자신의 사용자 지정 모델을 설정하는 QTableView를 사용하고 있습니다.Qt : 동일 창 또는 다른 창에서 드래그를 구분합니다.
테이블 뷰는 끌어서 놓기를 지원합니다. my model 클래스는 mimeData() 및 dropMimeData()를 다시 구현합니다. 응용 프로그램의 두 인스턴스간에 항목을 드래그 앤 드롭 할 수 있습니다.
달성하고자하는 것은 dropMimeData()는 떨어 뜨린 요소가 같은 창 또는 다른 응용 프로그램 실행중인 다른 창에서 제공되는지 여부를 감지해야합니다. 그리고 그것은 각 경우에 다르게 행동해야합니다.
dropMimeData()의 Qt :: DropAction 동작을 사용하는 것이 가장 자연스러운 것처럼 보였지만 작동하지 않습니다. 원래 창과 관계없이 항상 Qt :: CopyAction 또는 Qt :: MoveAction입니다. QTableView의 defaultDropAction에 있습니다.
이것이 가능합니까?
protected:
bool eventFilter(QObject *target, QEvent *event);
를 추가하는 기능이 이미 선언되지 않은 경우, mainwindow.h에 다음 사항을 추가 ui->tableView1
및 ui->tableView2
:
해당 정보를 MIME 데이터로 인코딩하고 항목을 삭제할 때 디코딩하면 어떻게 될까요? – vahancho
원래 윈도우의 시스템 전체 고유 식별자가 필요합니다. 그런 것이 있습니까? – user377486
나는 생각보다 간단합니다 - 그냥 귀하의 식별자 (들)을 발명하고 바이트 배열 또는 기타로 MIME 데이터에 쓸 수 있습니다. – vahancho