📜  PyQt5 QListWidget – 获取选择模式(1)

📅  最后修改于: 2023-12-03 15:03:58.305000             🧑  作者: Mango

PyQt5 QListWidget - 获取选择模式

简介

PyQt5是一个流行的Python GUI工具包,其中包含许多有用的部件和功能。QListWidget是其中之一,它是一个用于显示项目列表的部件。我们可以使用QListWidget的选择模式来控制用户选择项目的方式。

获取选择模式
选择模式

QListWidget的选择模式可以设置为以下几种:

  • QAbstractItemView.SingleSelection:只能选择一个项目。单击一个项目会取消前一个项目的选择。
  • QAbstractItemView.MultiSelection:可以同时选择多个项目。按住Ctrl键单击项目可选择或取消选择。
  • QAbstractItemView.ExtendedSelection:可以同时选择多个项目。按住Shift键并点击两个项目之间的项目可以选择或取消选择这些项目之间的所有项目。
  • QAbstractItemView.NoSelection:禁止选择任何项目。
设置选择模式

可以使用setSelectionMode()方法设置QListWidget的选择模式。以下是一个示例代码片段,展示如何设置选择模式为MultiSelection:

from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, \
    QVBoxLayout, QWidget

app = QApplication([])
widget = QWidget()

layout = QVBoxLayout()
list_widget = QListWidget()
list_widget.setSelectionMode(QListWidget.MultiSelection)

items = ['Item 1', 'Item 2', 'Item 3', 'Item 4']
for item in items:
    list_widget.addItem(QListWidgetItem(item))

layout.addWidget(list_widget)
widget.setLayout(layout)
widget.show()

app.exec_()
获取选择项目

可以使用selectedItems()方法获取用户选择的项目。以下是一个示例代码片段,展示如何获取用户选择的项目并打印它们:

from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, \
    QVBoxLayout, QWidget

app = QApplication([])
widget = QWidget()

layout = QVBoxLayout()
list_widget = QListWidget()
list_widget.setSelectionMode(QListWidget.MultiSelection)

items = ['Item 1', 'Item 2', 'Item 3', 'Item 4']
for item in items:
    list_widget.addItem(QListWidgetItem(item))

layout.addWidget(list_widget)
widget.setLayout(layout)
widget.show()

# 获取选择项目并打印
selected_items = list_widget.selectedItems()
for item in selected_items:
    print(item.text())

app.exec_()

以上代码片段中,我们创建了一个QListWidget并设置其选择模式为MultiSelection。然后,我们添加了一些项目,并在应用程序退出之前获取和打印了用户选择的项目。

总结

使用PyQt5的QListWidget,我们可以轻松地设置选择模式并获取用户选择的项目。选择模式的设置可以根据应用程序的需要进行灵活的调整。