如何使用QListWidget

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用QListWidget相关的知识,希望对你有一定的参考价值。

参考技术A 首先,我们适应QtCreator创建一个widge...
1
然后,打开界面文件,添加一个QListWid...
2
我们采用两种方法,第一种,在mainwind...
3
然后,我们运行下程序可以看到显示的

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

【中文标题】如何使用自定义项目小部件拖放 QListWidget 项目?【英文标题】:How can I drag drop QListWidget items with custom item widgets? 【发布时间】: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 上的新功能。我正在尝试制作一个图层组件(文本、预览图标、可见性按钮)并尝试将它们放入一个支持拖放的可滚动组件中。所以我不需要手动编写所有代码。 【参考方案1】:

检查这是否可行。

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)

【讨论】:

以上是关于如何使用QListWidget的主要内容,如果未能解决你的问题,请参考以下文章

如何使用QListWidget

如何在pyqt5 QlistWidget中选择当前项目

Qt - 如何从 QListWidget 中获取选定的自定义项目?

如何将所选项目从 QListWidget、QTableWidget 保存到 Qsettings

求教QListWidget如何实现多列

如何在pyqt5 QlistWidget中选择多个项目并打印它们[重复]