当前位置: 首页 > news >正文

Pyqt6的tableWidget填充数据

代码

from PySide6.QtWidgets import QTableWidget QTableWidgetItemdef tableInit(self):self.tableWidgetself.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)module_keyWord = readJsonToDict(keyWordFileDir + module_name) #读取模块关键字json字典数据self.tableWidget.setRowCount(len(module_keyWord.items()) + 1) #用字典长度设置表格行数,+1表上表示除去表头self.tableWidget.setColumnCount(3)self.tableWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)  # 禁止编辑单元格self.tableWidget.setAlternatingRowColors(True)  # 使表格颜色交错显示# 设置表头item = QTableWidgetItem("选择")item.setBackground(QBrush(QColor("cyan"))) #设置单元格背景颜色item.setFont# item.setTextAlignment(Qt.AlignmentFlag(20))self.tableWidget.setItem(0, 0, item)item = QTableWidgetItem("log关键字")item.setBackground(QBrush(QColor("cyan")))self.tableWidget.setItem(0, 1, item)item = QTableWidgetItem("描述")item.setBackground(QBrush(QColor("cyan")))self.tableWidget.setItem(0, 2, item)# 设置字体(字体,字号,颜色)# Item.setFont(QFont('Times', 14, QFont.Black))# # 另外一种方法设置颜色(该为红色)# Item.setForeground(QBrush(QColor(255, 0, 0)))# tableWidget.setItem(0, 0, Item)# 填充表格数据row = 1col = 1print('更新表格关键字文件:',keyWordFileDir + module_name)for name, score in module_keyWord.items():# 创建QCheckBoxcheckBox = QCheckBox()# 将QWidget设置为表格的单元格的QWidgetself.tableWidget.setCellWidget(row, 0, checkBox)checkBox.stateChanged.connect(lambda state, row=row: self.on_checkbox_state_changed(row))item = QTableWidgetItem(name)self.tableWidget.setItem(row, col, item)item = QTableWidgetItem(score)self.tableWidget.setItem(row, col+1, item)row += 1self.tableWidget.resizeColumnsToContents() #设置列宽跟随内容改变

代码功能解释

这段代码实现了表格的初始化和数据填充。

具体功能如下:

1. **设置表格选择行为**:设置为按行选择。

2. **读取JSON文件**:从指定路径读取模块关键字的JSON文件并转换为字典。

3. **配置表格属性**:设置表格的行数、列数、禁止编辑单元格、使表格颜色交错显示。

4. **设置表头**:创建并设置表头的三个单元格(选择、log关键字、描述),并设置背景颜色。

5. **填充表格数据**:遍历字典,为每一行添加复选框、关键字和描述,并连接复选框的状态变化事件。

控制流图

解释

  • A: 开始执行 tableInit 方法。
  • B: 设置表格的选择行为为按行选择。
  • C: 调用 readJsonToDict 方法读取 JSON 文件并转换为字典。
  • D: 配置表格的基本属性,如行数、列数、编辑权限等。
  • E: 设置表头的三个单元格,并设置背景颜色。
  • F: 初始化行号和列号。
  • G: 判断是否遍历完字典中的所有项。
  • H: 创建复选框并将其添加到表格中。
  • I: 将关键字和描述添加到表格中。
  • J: 增加行号以便处理下一行。
  • K: 当遍历完成后,调整表格的列宽以适应内容。
  • L: 结束 tableInit 方法的执行。
http://www.lryc.cn/news/508194.html

相关文章:

  • ASP.NET Core - 依赖注入 自动批量注入
  • UVM 验证方法学之interface学习系列文章(十一)virtual interface 再续篇
  • 面试题整理5----进程、线程、协程区别及僵尸进程处理
  • OpenTK 中帧缓存的深度解析与应用实践
  • 第2节-Test Case如何调用Object Repository中的请求并关联参数
  • 【HarmonyOS NEXT】Web 组件的基础用法以及 H5 侧与原生侧的双向数据通讯
  • Android学习(六)-Kotlin编程语言-数据类与单例类
  • CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究
  • 力扣274. H 指数
  • 挑战一个月基本掌握C++(第五天)了解运算符,循环,判断
  • Python的sklearn中的RandomForestRegressor使用详解
  • ReactPress 1.6.0:重塑博客体验,引领内容创新
  • 人脸生成3d模型 Era3D
  • kubeadm搭建k8s集群
  • centOS系统进程管理基础知识
  • STM32中ADC模数转换器
  • 初学stm32 --- 外部中断
  • wordpress调用指定分类ID下 相同标签的内容
  • SQL语法基础知识总结
  • css 实现呼吸灯效果
  • IMX6ULL开发板如何关掉自带的QT的GUI界面和poky的界面的方法
  • 几种广泛使用的 C++ 编译器
  • 《Vue进阶教程》第十六课:深入完善响应式系统之单例模式
  • C语言版解法力扣题:将整数按权重排序
  • Unity ECS和OOP优劣对比
  • 【Java基础面试题026】Java中的String、StringBuffer和StringBuilder的区别是什么?
  • 解析在OceanBase创建分区的常见问题|OceanBase 用户问题精粹
  • Flutter组件————Container
  • Java重要面试名词整理(二):SpringMyBatis
  • Excel生成DBC脚本源文件