📜  PyQt5 QListWidget - 设置当前选定行(1)

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

PyQt5 QListWidget - 设置当前选定行

QListWidget 是 PyQt5 中支持显示列表的控件。它可以显示多个项目,每个项目在列表中占据一行,并且可以容易地将项目组织为层次结构。本篇文章将讲解如何设置 QListWidget 中的当前选定行。

设置当前选定行

要设置 QListWidget 中的当前选定行,可以使用 setCurrentRow() 方法。该方法将选定指定行索引,将当前选定行设置为该行。

my_listwidget.setCurrentRow(row_index)

这里,row_index 是要设置为当前选定行的行的索引。注意,行的索引值从零开始,因此第一行的索引为0,第二行的索引为1,以此类推。

示例程序

下面的示例程序演示了如何使用 QListWidget 显示一个列表,并在用户单击列表中的项目时将其设置为当前选定行。

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

class MyWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建QListWidget对象
        self.list_widget = QListWidget(self)
        # 添加列表项
        for i in range(1, 6):
            list_item = QListWidgetItem(f'Item {i}')
            self.list_widget.addItem(list_item)
        # 设置布局
        layout = QVBoxLayout()
        layout.addWidget(self.list_widget)
        self.setLayout(layout)
        # 连接信号和槽
        self.list_widget.itemClicked.connect(self.set_current_row)

    def set_current_row(self, item):
        # 获取当前选中行的索引
        row_index = self.list_widget.row(item)
        # 设置当前选中行
        self.list_widget.setCurrentRow(row_index)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = MyWidget()
    widget.show()
    sys.exit(app.exec_())

在该程序中,我们创建了一个 QListWidget 对象,添加了五个列表项,并将其设置为主窗口的布局。我们还连接了 itemClicked() 信号和 set_current_row() 槽,该槽在用户单击列表中的项目时被调用。在 set_current_row() 方法中,我们使用 row() 方法获取选定行的索引,并使用 setCurrentRow() 方法将其设置为当前选定行。

希望这篇文章能帮助你理解如何设置 QListWidget 中的当前选定行。