2013-04-25 65 views
0

我對pyqt更新,我正在使用它來編寫一些GUI,有人可以告訴我如何通過拖放操作來對QListWidget中的項目進行排序嗎?如何通過拖放操作對QListWidget中的項目進行排序

由於事先從QAbstractItemView

+0

原因-1:問題應該澄清你使用代碼QtDesigner,並剔除作簡短的自足例如,從去。由於沒有詳細說明細節,沒有代碼,沒有工作流程的細節,加里休斯的答案可能不會幫助你。 – neuronet 2014-10-07 02:31:18

回答

2

QListWidget繼承。您可以使用QAbstractItemView.setDragDropMode(),並將其設置爲QAbstractItemView.InternalMove,前提是您希望能夠通過拖動&刪除來更改項目的順序。

Here's the relevent section of the documentation

這裏是展示在用行動表明一個簡單的例子:

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

嗨,謝謝你。但是...我使用qt設計器設置拖放模式,並使用pyuic4生成py代碼,我重寫dropEvent dropEnterEvent和dargEvent,似乎沒有效果。 (所有項目都是圖片,並顯示爲圖標) – Zuckonit 2013-04-26 05:56:46

相關問題