我比pyqt更新,我用它来编写一些GUI,有人可以告诉我如何通过拖放来拖动QListWidget中的项目吗?
提前致谢
答案 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_())