官方文档:https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QListWidget.html
使用前导入该组件:
from PySide6.QtWidgets import QListWidget
构造方法
# 列表框
QListWidget([_parent=None_])
列表框,类似QComboBox
,每一行存储的是QListWidgetItem
。
常用api
# 添加文字
addItem(text:str)
# 添加多项
addItems(texts:list)
# 清除添加的内容
clear()
# 通过下标获得某一行的项
item(index:int)
# 向某一行插入项
insertItem(row, item)
# 当前项数
count()
常用信号
# 当选中的行变化的时候就会触发
currentRowChanged(currentRow:int)
例子
from PySide6.QtWidgets import QListWidget,QLabel, QVBoxLayout, QWidget, QApplication
class Example(QWidget):
def __init__(self):
super().__init__()
self.layout = QVBoxLayout()
self.selected = QLabel()
# 创建QListWidget
self.lists = QListWidget()
self.lists.addItem("西瓜")
self.lists.addItem("香蕉")
self.lists.insertItem(1, "插入哈密瓜")
self.lists.addItems(["苹果", "葡萄"])
self.layout.addWidget(self.lists)
self.layout.addWidget(self.selected)
self.setLayout(self.layout)
# 绑定槽函数
self.lists.currentRowChanged.connect(self.showSelected)
def showSelected(self, index):
self.selected.setText(f"当前选中的行下标为{index},内容为{self.lists.item(index).text()}")
if __name__ == "__main__":
app = QApplication([])
btnTest = Example()
btnTest.show()
app.exec()