📜  PyQt5 QListWidget – 获取选择行为(1)

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

PyQt5 QListWidget – 获取选择行为

在PyQt5中,QListWidget是列表控件中最常用的,因为它提供了一种简单的方式来在界面中显示一个列表。 但是,当用户从列表中选择一个或多个项目时,开发人员需要知道如何捕获这些选择行为并处理它们。这篇文章将会展示如何使用PyQt5 QListWidget来获取选择行为。

获取单个选择行为

要获取单个选择行为,可以使用QListWidget的currentRow()方法,该方法将返回当前所选行的索引。

selected_row_index = list_widget.currentRow()

要查找当前所选行的文本,可以使用QListWidget的item()方法来检索该行的QListWidgetItem,然后使用该对象的text()方法来获取文本。 以下代码示例展示了如何获取当前选择的一行的文本:

selected_row_index = list_widget.currentRow()
item = list_widget.item(selected_row_index)
selected_text = item.text()
获取多个选择行为

要获取多个选择行为,可以使用QListWidget的selectedItems()方法,该方法将返回选定行的QListWidgetItems的列表。 以下代码示例展示了如何获取所有选定行的文本:

selected_rows = list_widget.selectedItems()
selected_texts = [item.text() for item in selected_rows]
完整代码示例
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QMainWindow


class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        list_widget = QListWidget(self)
        for index in range(10):
            item = QListWidgetItem(f"Item {index}")
            list_widget.addItem(item)

        # 获取单个选择行为
        selected_row_index = list_widget.currentRow()
        item = list_widget.item(selected_row_index)
        selected_text = item.text()
        print(selected_text)

        # 获取多个选择行为
        selected_rows = list_widget.selectedItems()
        selected_texts = [item.text() for item in selected_rows]
        print(selected_texts)


if __name__ == "__main__":
    app = QApplication([])
    window = MyWindow()
    window.show()
    app.exec_()

以上代码段是一个使用PyQt5 QListWidget的简单示例,展示了如何获取单个和多个选择行为。 通过这些示例,开发人员可以理解如何在他们的应用程序中使用QListWidget来捕获用户输入。