如何通过拖放来拖动QListWidget中的项目

时间:2013-04-25 08:43:45

标签: python drag-and-drop pyqt qlistwidget

我比pyqt更新,我用它来编写一些GUI,有人可以告诉我如何通过拖放来拖动QListWidget中的项目吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

QListWidget继承自QAbstractItemView。如果您希望能够使用拖放功能更改商品的顺序,则可以使用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_())