QListWidget和多选

时间:2010-10-24 14:25:33

标签: python user-interface pyqt qlistwidget

我有一个常规的QListWidget,有几个信号和插槽连接。一切都按照我的预期运作。我可以更新,检索,清除等。

但UI不支持多种选择。

如何为QListWidget启用多项选择?我对PyQt的有限经验告诉我,我需要通过子类化创建自定义QListWidget但是下一步是什么?

谷歌给了我C ++答案,但我正在寻找Python

http://www.qtforum.org/article/26320/qlistwidget-multiple-selection.html

http://www.qtcentre.org/threads/11721-QListWidget-multi-selection

5 个答案:

答案 0 :(得分:17)

不幸的是我无法使用Python特定的语法,但您不需要创建任何子类。

创建QListWidget后,使用传入的多种选择类型之一调用setSelectionMode(),可能QAbstractItemView::ExtendedSelection就是您想要的那种。您可能需要查看此模式的一些变体。

itemSelectionChanged()信号的插槽中,请致电selectedItems()以获取QList QListWidgetItem个指针。

答案 1 :(得分:17)

对于PyQT4,它是

QListWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)

答案 2 :(得分:2)

在具有多个选择的listWidget中获取多个选定值的示例。

urlQueryAllowed

输出:-

enter image description here

答案 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)

其中

  • SelectionMode = 0 => NoSelection
  • SelectionMode = 1 => SingleSelection
  • SelectionMode = 2 =>多重选择
  • SelectionMode = 3 => ExtendedSelection
  • SelectionMode = 4 => ContiguousSelection

Reference

在Qt Creator中,您可以在这里找到此选项: enter image description here