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

Pyqt6的tableWidget填充数据

代码

from PySide6.QtWidgets import QTableWidget QTableWidgetItem

def tableInit(self):
    self.tableWidget
    self.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 = 1
    col = 1
    print('更新表格关键字文件:',keyWordFileDir + module_name)
    for name, score in module_keyWord.items():
      # 创建QCheckBox
      checkBox = QCheckBox()
      # 将QWidget设置为表格的单元格的QWidget
      self.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 += 1
    self.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.kler.cn/a/450210.html

相关文章:

  • ReentrantLock底层原理、源码解析
  • 第十四章 C++ 数字
  • 链表的详解
  • vue3入门教程:ref函数
  • 工控触摸屏用winForms来构建框架,效果还是很不错的
  • Vue常用指令
  • 《Python 解释器和 PyCharm 详解》
  • 不写一行代码,通义灵码 5 分钟“手撕”年会抽奖程序
  • 新纪天工 开物焕彩:重大科技成就发布会参会感
  • 【Ubuntu 20.04】notepad++的安装与汉化
  • Pytorch | 利用FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • 【汇编语言】端口 —— 「从端口到时间:一文了解CMOS RAM与汇编指令的交汇」
  • 一文解释清楚OpenHarmony面向全场景的分布式操作系统
  • Java重要面试名词整理(一):MySQLJVMTomcat
  • RunCam WiFiLink连接手机图传测试
  • 深度剖析CRM系统:什么是CRM系统?有什么用?企业该如何选择?
  • 【读书笔记】《论语别裁》爱与罪
  • (补)算法刷题Day25:BM62 斐波那契数列
  • Python结合一些常见的自然语言处理库来实现根据提示生成作文
  • 基于单片机的噪音检测系统(论文+源码)
  • nodejs创建ws服务器,前端浏览器用websocket接收信息和发送信息给服务端
  • LeetCode 206. 反转链表 (C++实现)
  • Yolo11改进策略:Block改进|使用FastVit的RepMixerBlock改进Yolo11,重参数重构助力Yolo11涨点(全网首发)
  • 系统思考—全局思维
  • 深度学习-77-大模型量化之Post Training Quantization训练后量化PTQ
  • 嵌入式硬件产品:CC254x 蓝牙升级