2011-03-29 6 views
0

두 개의 QTreeView를 나란히두고 한 테이블의 항목 하나를 다른 테이블로 드래그하도록 구현하고 싶습니다. 그러나 내가하고 싶은 것은 놓을 아이템이 목적지 테이블에 도달 할 때, 두 개의 행이 "그것을위한 공간을 마련"하고 정렬하여 아이템이 떨어지는 곳을 정확히 보여 주도록하는 것입니다. 누군가 내가 어떻게 시작해야할지 전혀 모르기 때문에 이것을 수행하는 방법에 관해 올바른 방향으로 나를 지적 할 수 있습니까? 감사합니다. 스티븐Qt 드래그 앤 드롭 애니메이션

답변

0

당신이 원하는대로 끌어서 놓기를 원합니다.

구체적인 목표로, 항목을 드래그하는 동안 마우스가 대상 트리 내에서 이동할 때마다 호출되는 QWidget :: dragMoveEvent (QDragMoveEvent * event)를 구현해야합니다. 그런 다음 QDragMoveEvent :: pos()를 사용하여 커서의 위치를 ​​가져옵니다. 그런 다음 dragMoveEvent에서 QTreeView :: indexAt (pos())를 사용하여 마우스 아래 항목을 가져옵니다. 이제 항목을 매끄러운 애니메이션 방식으로 분리하는 방법을 알지 못합니다. 이상적입니다. 그러나 당신이 할 수있는 것은 (일시적으로) 빈 항목을 목록에 추가하는 것인데, 이것은 거의 동일한 효과를 가질 것입니다. 그런 다음 QWidget :: dropEvent()를 구현하여 drop 이벤트를 처리하면 빈 항목을 삭제하고 드래그 한 항목을 있던 위치에 삽입합니다.