【发布时间】:2014-07-20 12:18:24
【问题描述】:
如果我使用QListWidget 默认项目,我可以拖放它的项目(感谢setDragDropMode),但如果我使用自定义项目小部件(setItemWidget)我无法拖放。我该如何解决?
这是我用自定义小部件项目制作列表的代码:
alist = QListWidget()
alist.setDragDropMode(QAbstractItemView.InternalMove)
for i in range(20):
itemWidget = QPushButton('Test' + str(i))
item = QListWidgetItem('item ' + str(i))
item.setSizeHint(QSize(0,100))
alist.addItem(item)
alist.setItemWidget(item, itemWidget)
vbox = QVBoxLayout()
vbox.addWidget(QPushButton())
vbox.addWidget(alist)
self.setLayout(vbox)
【问题讨论】:
-
Fabrico :您使用 listWidget 而不是 listView 是他们的任何具体原因吗?
-
@thecreator232 我实际上不知道两者之间的区别。 QT 上的新功能。我正在尝试制作一个图层组件(文本、预览图标、可见性按钮)并尝试将它们放入一个支持拖放的可滚动组件中。所以我不需要手动编写所有代码。