Pyqt6的tableWidget填充数据

news/2024/12/24 3:17:56 标签: python, pyqt

代码

python">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.niftyadmin.cn/n/5797260.html

相关文章

UVM 验证方法学之interface学习系列文章(十一)virtual interface 再续篇

一 前言 并非总是可以将被测单元(DUT)视为一个黑盒,即仅监控和驱动DUT的顶层端口信号。这一点在从模块级测试转向更大规模的系统级测试时尤为明显。有时,我们需要了解实现细节以便访问DUT内部的信号。这被称为白盒验证。 Verilog一直提供从其他作用域访问几乎任何层次结构…

Positional Encoding-Transformer

文章目录 1. 创建一个位置编码类2. Python代码 1. 创建一个位置编码类 P E ( p o s , 2 i ) sin ⁡ ( p o s / 1000 0 2 i / d m o d e l ) \begin{equation} PE_{(pos,2i)}\sin(pos/10000^{2i/d_{model}}) \end{equation} PE(pos,2i)​sin(pos/100002i/dmodel​)​​ P E ( …

【时间之外】IT人求职和创业应知【74】-运维机器人

目录 OpenAI最强推理模型o3发布,AGI测试能力暴涨 英伟达宣布收购以色列AI初创企业Runai 汤姆猫首款AI机器人产品明日发售 心勿贪,贵知足。 感谢所有打开这个页面的朋友。人生不如意,开越野车去撒野,会害了自己,不如…

小型 Vue 项目,该不该用 Pinia 、Vuex呢?

说到 Vue3 的状态管理,我们会第一时间想到 Pinia、Vuex,但是经过很长一段时间的 Vue3 项目开发,我逐渐发现,我们真的有必要用 Pinia、Vuex 这类的状态管理工具吗? 带着这样的疑惑,我首先是想知道一下 Pini…

在 Sanic 应用中使用内存缓存管理 IP 黑名单

[外链图片转存中…(img-Pm0K9mzd-1734859380698)] 在现代 web 应用中,保护 API 接口免受恶意请求的攻击至关重要。IP 黑名单是一种常见的安全措施,可以有效阻止某些 IP 地址的访问。本文将介绍如何在 Python 的 Sanic 框架中实现 IP 黑名单功能&#xf…

【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器…

Qt中的QProcess与Boost.Interprocess:实现多进程编程

目录 QProcess简介 启动进程的不同方式 例子1:打开记事本程序 例子2:执行带有管道(|)的Linux命令 同步进程API Boost.Interprocess简介 (一)共享内存: (二)命名信…

kubernates实战

使用k8s来部署tomcat 1、创建一个部署,并指定镜像地址 kubectl create deployment tomcat6 --imagetomcat:6.0.53-jre82、查看部署pod状态 kubectl get pods # 获取default名称空间下的pods kubectl get pods --all-namespaces # 获取所有名称空间下的pods kubect…