2013-04-25 6 views
0

나는 pyqt에 최신이며, GUI를 작성하는 데 사용하고 있습니다. 아무도 QListWidget에서 항목을 정렬하고 드래그하여 말해 줄 수 있습니까? 사전 QAbstractItemView에서드롭 및 드래그로 QListWidget에서 항목을 정렬하는 방법

+0

이유 :

여기에 행동에 그것을 보여주는 간단한 예제 문제는 QtDesigner에서 코드를 사용하여 당신을 명확히하고,에서 갈 수있는 짧은 자체에 포함 된 예를 아래로 추려한다. 세부 사항은 거의없고 코드도없고 워크 플로에 대한 세부 정보도 없으므로 게리 휴즈 (Gary Hughes)의 대답이 도움이되지 않을 수 있습니다. – neuronet

답변

2

QListWidget 상속에

감사합니다. QAbstractItemView.setDragDropMode()을 사용하고 으로 설정하면 끌기 & 드롭을 사용하여 항목의 순서를 변경할 수 있습니다.

Here's the relevent section of the documentation. -1에 대한

import sys 
from PyQt4.QtGui import QApplication, QWidget, \ 
    QVBoxLayout, QListWidget, QAbstractItemView 

class Widget(QWidget): 
    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 

     self.widget_layout = QVBoxLayout() 

     # Create ListWidget and add 10 items to move around. 
     self.list_widget = QListWidget() 
     for x in range(1, 11): 
      self.list_widget.addItem('Item {:02d}'.format(x)) 

     # Enable drag & drop ordering of items. 
     self.list_widget.setDragDropMode(QAbstractItemView.InternalMove) 

     self.widget_layout.addWidget(self.list_widget) 
     self.setLayout(self.widget_layout) 


if __name__ == '__main__': 
    app = QApplication(sys.argv) 
    widget = Widget() 
    widget.show() 

    sys.exit(app.exec_()) 
+0

안녕하세요, 고마워요. 하지만 ... 나는 드래그 앤 드롭 모드를 설정하고 py 코드를 생성하기 위해 pyuic4를 사용하여 qt 디자이너를 사용하여 dropEvent dropEnterEvent 및 dargEvent를 다시 작성합니다. 아무 효과가없는 것 같습니다. (모든 항목은 사진이며 아이콘으로 표시됨) – Zuckonit