【PyQt5 学习记录】011:使用 QListWidet 创建列表

时间:2022-09-05 23:03:58

使用 QListWidet 创建列表

作者: 八月未见 博客: https://www.cnblogs.com/jmtm/

创建列表:

list_widget = QListWidget()

插入项目:

直接添加文字:

# 在末尾添加:
list_widget.addItem("Item")

items = ["Item - 1", "Item - 2"]
list_widget.addItems(items)

# 在指定行添加:
list_widget.insertItem(0, "Item")

items = ["Item - 1", "Item - 2"]
# 从第 1 行开始添加:
list_widget.insertItems(1, items)

举个栗子:

# 创建列表:
list_widget = QListWidget()
item_list = []
for i in range(20):
    item_list.append("Item - " + str(i))
# 向列表添加项目:
list_widget.addItems(item_list)

效果如下:
【PyQt5 学习记录】011:使用 QListWidet 创建列表

添加 item :

使用 QtWidgets.QListWidgetItem 创建项目

# 创建一个 item :
item = QListWidgetItem()
item.setIcon(QIcon("programme.png"))
item.setText("Item")
list_widget.addItem(item)

将项目添加到列表:

# 直接添加:
QListWidgetItem(QIcon("icon.png"), "Item", list_widget)

list_widget.addItem(item)

list_widget.insertItem(0, item)

栗子来了:

QListWidgetItem(QIcon("laugh.png"), "Item - 1", list_widget)

item = QListWidgetItem()
item.setIcon(QIcon("programme.png"))
item.setText("Item - 2")
list_widget.insertItem(0, item)

效果如图:
【PyQt5 学习记录】011:使用 QListWidet 创建列表

编辑项目:

当前选项:

设置当前选项:

# 通过项目来设置当前选项:
list_widget.setCurrentItem(item)

# 通过行来设置当前选项:
list_widget.setCurrentRow(3)

获取当前选项:

# 获取当前选项:
current_item = list_widget.currentItem()

# 获取当前行:
current_row = list_widget.currentRow()

编辑选项:

# 开始编辑:
list_widget.openPersistentEditor(current_item)

# 结束编辑:
list_widget.closePersistentEditor(current_item)

删除选项:

# 删除第四行:
list_widget.takeItem(4)

# 移除选项上的其他组件:
# 注意:这不会删除选项,仅仅移除选项上的其他组件(如:Label、LineEdit、等)。
list_widget.removeItemWidget(current_item)

# 移除所有选项:
# 注意:这会让列表变成一片空白。
list_widget.clear()

选项数量:

list_widget.count()

在选项上显示组件:

# 如果你这么做了将会无法删除此选项:
list_widget.setItemWidget(item, QLabel("这是一个 Label !"))

查找选项:

# 在所有选项中查找有字符 4 的选项,并返回数组:
list_widget.findItems("4", Qt.MatchContains)

# 通过行找到选项:
# 注意:第一行是 0 。
list_widget.item(3)

隐藏选项:

list_widget.setRowHidden(2, True)

参考资料:QListWidget — Qt for Python (Technology Preview)