📅  最后修改于: 2023-12-03 15:33:53.363000             🧑  作者: Mango
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
中的当前选定行。