我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
QListWidget 项处理控件1
- 继承关系图
- 描述
- PyQt5中用于项(Item)处理的组件有两大类:
Item Views
和Item Widgets
- Item Views:包括
QListView
、QTreeView
、QTableView
、QColumnView
等 - Item Widgets:包括
QListWidget
、QTreeWidget
、QTableWidget
- Item Views:包括
- PyQt5中用于项(Item)处理的组件有两大类:
Item Views
和Item Widgets
的区别- Item Widgets 直接将数据存储在每一个项里
- Item Views 基于模型/视图(Model/View)结构,视图(View)与模型数据(Model Data)关联实现数据的显示和编辑
- 关于
Item Widgets
- QListWidget的每行是一个项
- QTreeWidget的每个节点是一个项
- QTableWidget的每个单元格是一个项
- 一个项存储了文字、文字的格式、自定义数据等
- 示图:
- 示图文件代码
from PyQt5.Qt import * import sys class Windows(QWidget): def __init__(self): super().__init__() self.setWindowTitle('Item Widget-初体验') self.resize(780, 350) self.widget_list() def widget_list(self): self.add_widget() def add_widget(self): lab1 = QLabel('QListWidget', self) lab2 = QLabel('QTableWidget', self) lab3 = QLabel('QTreeWidget', self) listwidget = QListWidget(self) listwidget.resize(150, 300) listwidget.move(0, 30) listwidget.addItem('QListWidege项1') listwidget.addItem('QListWidege项2') listwidget.addItem('QListWidege项3') listwidget.addItem('QListWidege项4') tablewidget = QTableWidget(7, 3, self) tablewidget.resize(400, 300) tablewidget.move(160, 30) for i in range(0, 4): for j in range(0, 8): item = QTableWidgetItem(f'项{ j+1}-{ i+1}') tablewidget.setItem(j, i, item) treewidget = QTreeWidget(self) treewidget.resize(200, 300) treewidget.move(570, 30) treewidget.setColumnCount(1) # 设置列数 treewidget.setHeaderLabels(['Key']) # 设置标题行 treewidget.setHeaderHidden(True) # 设置标题行是否隐藏 item1 = QTreeWidgetItem(treewidget,['根节点1'],0) # 创建根节点对象 item2 = QTreeWidgetItem(treewidget,['根节点2'],0) # 创建根节点对象 item3 = QTreeWidgetItem(treewidget,['根节点3'],0) # 创建根节点对象 child11 = QTreeWidgetItem(item1, ['子节点1-1'], 0) # 给根节点创建子节点 child12 = QTreeWidgetItem(item1, ['子节点1-2'], 0) child13 = QTreeWidgetItem(item1, ['子节点1-3'], 0) child21 = QTreeWidgetItem(item2, ['子节点2-1'], 0) child22 = QTreeWidgetItem(item2, ['子节点2-2'], 0) child23 = QTreeWidgetItem(item2, ['子节点2-3'], 0) child111 = QTreeWidgetItem(child11, ['子节点1-1-1'], 0) # 给子节点创建子节点 child112 = QTreeWidgetItem(child11, ['子节点1-1-2'], 0) # 给子节点创建子节点 hlayout1 = QVBoxLayout() hlayout1.addWidget(lab1) hlayout1.addWidget(listwidget) hlayout2 = QVBoxLayout() hlayout2.addWidget(lab2) hlayout2.addWidget(tablewidget) hlayout3 = QVBoxLayout() hlayout3.addWidget(lab3) hlayout3.addWidget(treewidget) vlayout = QHBoxLayout() vlayout.addLayout(hlayout1, 1) vlayout.addLayout(hlayout2, 2) vlayout.addLayout(hlayout3, 1) self.setLayout(vlayout) if __name__ == '__main__': app = QApplication(sys.argv) window = Windows() window.show() sys.exit(app.exec_())
- 功能作用
- 构造函数
QListWidget(parent) # 创建对象的同时设置父对象
- 添加条目
addItem(QListWidgetItem) # 通过QListWidgetItem对象添加条目 addItem(str) # 通过str对象添加条目 insertItem(row, QListWidgetItem) # 在row行后添加一条目item insertItems(row, Iterable[str]) # 通过迭代器在rou行后面添加N条条目
- 当前条目
setCurrentItem(QListWidgetItem) # 设置指定条目为当前选中 setCurrentItem(QListWidgetItem, QItemSelectionModel.SelectionFlags) # 参数 QItemSelectionModel.SelectionFlags # QltemSelectionModel.Clear # 清除之前的选择 # QltemSelectionModel.Select # 选择指定的索引/区域 # QltemSelectionModel.Deselect # 取消选择指定的索引/区域 # QltemSelectionModel.Toggle # 切换指定的索引/区域的选择状态 # QltemSelectionModel.Current # 选择模型中的当前项(如果有) # QltemSelectionModel.Rows # 选择整个行 # QltemSelectionModel.Columns # 选择整个列 # QltemS