好的。首先,QListWidget 是 PyQt5 提供的列表控件之一,它可以让用户通过单击列表中的项来选择该项,然后可以根据需要进行相关操作。本文目的是探究如何在 PyQt5 中获取当前 QListWidget 的选择行。以下是使用攻略和示例:
使用攻略
步骤一:创建 QListWidget 对象
from PyQt5.QtWidgets import QListWidget
list_widget = QListWidget()
步骤二:添加 QListWidgetItem
from PyQt5.QtWidgets import QListWidgetItem
list_widget.addItem(QListWidgetItem("Item 1"))
list_widget.addItem(QListWidgetItem("Item 2"))
list_widget.addItem(QListWidgetItem("Item 3"))
步骤三:获取当前选择的行
current_row = list_widget.currentRow()
其中,currentRow()
方法返回当前所选项在控件中的行号(从零开始)。如果没有选择任何项,则返回 -1
。
示例一
代码
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem
class MyListWidget(QListWidget):
def __init__(self):
super().__init__()
self.addItem(QListWidgetItem("Item 1"))
self.addItem(QListWidgetItem("Item 2"))
self.addItem(QListWidgetItem("Item 3"))
self.itemSelectionChanged.connect(self.print_current_row)
def print_current_row(self):
current_row = self.currentRow()
print(current_row)
if __name__ == '__main__':
app = QApplication(sys.argv)
list_widget = MyListWidget()
list_widget.show()
sys.exit(app.exec_())
解释
以上代码创建一个 QListWidget 对象,并添加三个 QListWidgetItem 到控件中。通过itemSelectionChanged
信号连接到 print_current_row
方法,该方法会在当前行发生更改时打印当前行号。
效果
当我们单击某个项目时,终端窗口中显示该项目在控件中的行号。
示例二
代码
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem, QPushButton, QVBoxLayout, QWidget
class MyWidget(QWidget):
def __init__(self):
super().__init__()
list_widget = QListWidget()
# 添加数据
list_widget.addItem(QListWidgetItem("Item 1"))
list_widget.addItem(QListWidgetItem("Item 2"))
list_widget.addItem(QListWidgetItem("Item 3"))
# 添加按钮
button = QPushButton("Get current row")
button.clicked.connect(lambda: print(list_widget.currentRow()))
# 添加布局
layout = QVBoxLayout()
layout.addWidget(list_widget)
layout.addWidget(button)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = MyWidget()
widget.show()
sys.exit(app.exec_())
解释
以上代码创建了一个 QWidget 对象,其中包含一个 QListWidget 控件和一个按钮。 当按钮被单击时,控制台将打印当前所选项在控件中的行号。
效果
当我们单击按钮时,控制台将打印当前所选项在控件中的行号。
以上就是如何在 PyQt5 中获取 QListWidget 的当前选择行的方法和示例。