Sure! 首先,我们来了解一下什么是 PyQt5 QListWidget。
PyQt5 是一个开源的 Python 模块,是 Qt 应用程序框架的 Python 接口。Qt 是一个流行的 C++ 库,用于构建跨平台的 GUI 应用程序。PyQt5 是使用 Qt 应用程序框架开发的 Python GUI 库之一。QListWidget 是一个用于显示单列或多列列表的窗口小部件,它可以显示文本、图像等元素。
现在,我们来讲解一下如何获取 PyQt5 QListWidget 的当前项。
在 PyQt5 中,我们可以通过 QListWidget.currentItem() 方法来获取当前项。该方法返回 QListWidgetItem 类的对象。你可以使用该对象的方法和属性来访问当前项的文本、图像、数据等信息。例如,你可以使用 text() 方法获取当前项的文本。下面是一个简单的示例代码:
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem
class MyListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.addItem("Item 1")
self.addItem("Item 2")
self.addItem("Item 3")
self.currentItemChanged.connect(self.selectionChanged)
def selectionChanged(self, current, previous):
if current:
print(current.text())
if __name__ == "__main__":
app = QApplication(sys.argv)
mylist = MyListWidget()
mylist.show()
sys.exit(app.exec_())
在该示例中,我们创建了一个自定义的 QListWidget 子类 MyListWidget,该列表中包含三个项。我们使用 currentItemChanged 信号来连接槽函数 selectionChanged 函数。该函数将在当前项更改时被调用。在 selectionChanged 函数中,我们使用 currentItem() 方法获取当前项,然后使用 text() 方法获取当前项的文本并打印输出。
除此之外,我们还可以使用 QListWidget.currentRow() 方法来获取当前项的索引。该方法返回一个整数,表示当前项在列表中的第几行。下面是一个包含该方法的示例:
import sys
from PyQt5.QtWidgets import QApplication, QListWidget, QListWidgetItem
class MyListWidget(QListWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.addItem("Item 1")
self.addItem("Item 2")
self.addItem("Item 3")
self.currentRowChanged.connect(self.selectionChanged)
def selectionChanged(self, currentRow):
print("Current row:", currentRow)
if __name__ == "__main__":
app = QApplication(sys.argv)
mylist = MyListWidget()
mylist.show()
sys.exit(app.exec_())
在该示例中,我们创建了一个与前面相同的 QListWidget 子类 MyListWidget,并使用 currentRowChanged 信号连接了槽函数 selectionChanged 函数。该函数将在当前行更改时被调用,并使用 currentRow() 方法获取当前行,并输出当前行的值。