我有一个常规的QListWidget
,有几个信号和插槽连接。一切都按照我的预期运作。我可以更新,检索,清除等。
但UI不支持多种选择。
如何为QListWidget
启用多项选择?我对PyQt的有限经验告诉我,我需要通过子类化创建自定义QListWidget
但是下一步是什么?
http://www.qtforum.org/article/26320/qlistwidget-multiple-selection.html
http://www.qtcentre.org/threads/11721-QListWidget-multi-selection
答案 0 :(得分:17)
不幸的是我无法使用Python特定的语法,但您不需要创建任何子类。
创建QListWidget
后,使用传入的多种选择类型之一调用setSelectionMode()
,可能QAbstractItemView::ExtendedSelection
就是您想要的那种。您可能需要查看此模式的一些变体。
在itemSelectionChanged()
信号的插槽中,请致电selectedItems()
以获取QList
QListWidgetItem
个指针。
答案 1 :(得分:17)
对于PyQT4,它是
QListWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)
答案 2 :(得分:2)
答案 3 :(得分:2)
此外,您可以使用列表推导来获取所选项目,例如
num_ITEMS=[item.text() for item in self.listWidget.selectedItems()]
答案 4 :(得分:1)
使用PyQt5,您可以使用以下方法将QListWidget的SelectionMode设置为允许多个选择:
from PyQt5 import QtWidgets
QtWidgets.QListWidget.setSelectionMode(2)
其中