如何使用自定义项目小部件拖放QListWidget项?

2024-10-06 16:20:54 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我使用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)

Tags: 代码列表部件itemstrvboxalistqpushbutton
1条回答
网友
1楼 · 发布于 2024-10-06 16:20:54

检查这是否有效。在

alist = QListWidget()
alist.setAcceptDrops(True)
alist.setDragEnabled(True)
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)

相关问题 更多 >