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

QTableWidget 相关 API 一览表

类别功能API / 方法代码示例
初始化设置行数setRowCount(int rows)ui->tableWidget->setRowCount(2);
初始化设置列数setColumnCount(int columns)ui->tableWidget->setColumnCount(listSize-1);
表头设置水平表头标签setHorizontalHeaderLabels(QStringList labels)ui->tableWidget->setHorizontalHeaderLabels(headerList);
表头列宽自动拉伸horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch)ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
单元格写入设置单元格内容setItem(int row, int col, QTableWidgetItem *item)ui->tableWidget->setItem(0, 0, item);
单元格写入设置单元格内容(循环)setItem(int row, int col, QTableWidgetItem *item)ui->tableWidget->setItem(0, i+1, item);
交互控制设置不可编辑setEditTriggers(QAbstractItemView::NoEditTriggers)ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
清空清空表格clear()ui->tableWidget->clear();

说明

  • ui->tableWidgetQTableWidget类,它自带数据模型(不需要像QTableView那样配合QStandardItemModel),适合简单的表格展示。
  • 该表格用于显示尺寸上下限(上限/下限两行),区别于ui->tableView(右下角测量结果表)。
  • 数据来源与tableView相同,都从dog/*.json配置文件中读取upperLimitlowerLimit字段。
  • QTableWidgetItem是单元格的载体,通过new QTableWidgetItem(QString::number(t))创建后传入setItem
importsysimportjsonfromPyQt5.QtWidgetsimport(QApplication,QWidget,QVBoxLayout,QTableWidget,QTableWidgetItem,QAbstractItemView,QHeaderView)classMainWin(QWidget):def__init__(self):super().__init__()self.setWindowTitle("QTableWidget 上下限阈值表格")self.resize(900,220)layout=QVBoxLayout(self)# 控件:QTableWidgetself.tableWidget=QTableWidget()layout.addWidget(self.tableWidget)# 保存全局上下限列表(对应C++ upperLimit / lowerLimit 成员变量)self.upperLimit=[]self.lowerLimit=[]# 模拟json字符串,就是你给的jsonself.json_text=''' { "chindesName":"0511156", "list": [ "全长", "行程", "螺纹直径", "螺纹长度", "螺端长度", "螺端直径", "外径", "尺寸结果", "表检结果" ], "lowerLimit": [1.0, 1.0, 6.794, 8.5, 8.8, 5.82, 7.88], "standardValue": [266.68, 248.72, 6.836, 8.821, 9.078, 5.901, 7.886], "typeNames": [257.5, 290], "upperLimit": [400.0, 400.0, 6.974, 9.0, 9.2, 5.97, 7.9] } '''# 加载阈值表格,等价C++ refreshYuzhi()self.refresh_yuzhi()defrefresh_yuzhi(self):"""对应C++ void MainWindowUi::refreshYuzhi()"""# 1 清空表格self.tableWidget.clear()# 设置固定2行:upper、lowerself.tableWidget.setRowCount(2)temp_config=json.loads(self.json_text)list_size=len(temp_config["list"])iflist_size==0:print("ERROR: lack 'list' property !")return# 设置列数 listSize -1 = 8self.tableWidget.setColumnCount(list_size-1)header_list=[""]# 第一个表头为空# for i in 0 ~ listSize‑2‑1foriinrange(list_size-2):t=temp_config["list"][i]header_list.append(t)# 设置水平表头标签self.tableWidget.setHorizontalHeaderLabels(header_list)# 列自动拉伸铺满self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)# 单元格禁止编辑self.tableWidget.setEditTriggers(QAbstractItemView.NoEditTriggers)# ========== 加载尺寸上限 upperLimit 第0行 ==========upper_limit_arr=temp_config["upperLimit"]upper_limit_size=len(upper_limit_arr)ifupper_limit_size==0:print("ERROR: lack 'upperLimit' property !")else:# 第0行第0列填入 upperitem=QTableWidgetItem("upper")self.tableWidget.setItem(0,0,item)# 第1行第0列填入 loweritem=QTableWidgetItem("lower")self.tableWidget.setItem(1,0,item)self.upperLimit.clear()foriinrange(upper_limit_size):val=upper_limit_arr[i]self.upperLimit.append(val)item=QTableWidgetItem(str(val))# setItem(row, col) col = i+1self.tableWidget.setItem(0,i+1,item)# ========== 加载尺寸下限 lowerLimit 第1行 ==========lower_limit_arr=temp_config["lowerLimit"]lower_limit_size=len(lower_limit_arr)iflower_limit_size==0:print("ERROR: lack 'lowerLimit' property !")else:self.lowerLimit.clear()foriinrange(lower_limit_size):val=lower_limit_arr[i]self.lowerLimit.append(val)item=QTableWidgetItem(str(val))self.tableWidget.setItem(1,i+1,item)if__name__=="__main__":app=QApplication(sys.argv)w=MainWin()w.show()sys.exit(app.exec_())

# -*- coding: utf-8 -*-''' 【简介】 PyQt5中 QTabWidget 例子 '''importsysfromPyQt5.QtCoreimport*fromPyQt5.QtGuiimport*fromPyQt5.QtWidgetsimport*classTabDemo(QTabWidget):def__init__(self,parent=None):super(TabDemo,self).__init__(parent)self.tab1=QWidget()self.tab2=QWidget()self.tab3=QWidget()self.addTab(self.tab1,"Tab 1")self.addTab(self.tab2,"Tab 2")self.addTab(self.tab3,"Tab 3")self.tab1UI()self.tab2UI()self.tab3UI()self.setWindowTitle("Tab 例子")deftab1UI(self):layout=QFormLayout()layout.addRow("姓名",QLineEdit())layout.addRow("地址",QLineEdit())self.setTabText(0,"联系方式")self.tab1.setLayout(layout)deftab2UI(self):layout=QFormLayout()sex=QHBoxLayout()sex.addWidget(QRadioButton("男"))sex.addWidget(QRadioButton("女"))layout.addRow(QLabel("性别"),sex)layout.addRow("生日",QLineEdit())self.setTabText(1,"个人详细信息")self.tab2.setLayout(layout)deftab3UI(self):layout=QHBoxLayout()layout.addWidget(QLabel("科目"))layout.addWidget(QCheckBox("物理"))layout.addWidget(QCheckBox("高数"))self.setTabText(2,"教育程度")self.tab3.setLayout(layout)if__name__=='__main__':app=QApplication(sys.argv)demo=TabDemo()demo.show()sys.exit(app.exec_())
http://www.jsqmd.com/news/1374360/

相关文章:

  • 如何用AI对话式视频编辑框架实现300%创作效率提升:从手动剪辑到智能生产的范式革命
  • 深度解析bup备份系统的3种高可用异常处理机制
  • 2026武汉地区招投标服务商甄选指南:标书网代写标书正规吗?附选型避坑全FAQ及行业适配分析 - 商业大观
  • 自定义浏览器页眉页脚
  • 军工研究所Java/前端离职闯互联网:能跳槽、能存活吗?
  • 金融专业大学期间考什么证?按就业方向分梯队更清楚
  • 数字洪流中,企业如何不“翻船”?
  • Node.js私厨小程序全栈开发实战
  • 2026年8月企业AI搜索优化怎么做:980元一年的GEO系统软件让品牌名字出现在豆包和Kimi的回答里 - 德益云企业服务
  • SpringBoot养鸡场育种管理系统设计与实现
  • 2026 年 8 月新发布:泽州口碑好的升旗台栏板公司电话,总有人在没人发现的地方,藏了一面特别的旗,藏在那圈不起眼的板后面 - 行业推荐官【认证】
  • Mac Mouse Fix终极指南:让10美元鼠标在macOS上超越苹果触控板
  • STM32CubeIDE_1.19.0_安装及STM32H745I固件包配置教程
  • Compartment高级使用技巧:提升AI记忆检索accuracy的10个实用方法
  • 苏州活动策划展厅搭建一体化服务商筛选指南
  • 多因子智能推演:黄金升至九周高位,央行购金如何重塑金价路径的AI预测框架
  • 线性代数:未竟之美中的多重线性映射与张量计算:入门到精通
  • 2026年市政水利标书代编全攻略:正规合规服务商大盘点、避坑指南与高口碑机构甄选 - 行业观察网
  • 后端别瞎转AI Agent!90%的人学3个月也找不到工作(2026上岸版)
  • Playwright与Visual-Regression-Tracker结合使用:自动化视觉测试完整流程
  • 全自动太阳光谱辐射监测系统——多光谱滤光片+热电堆测不同波段辐照度
  • 2026年8月香港进修移民申请指南:不同学历层次怎么选学校和专业 世贸企业咨询详解 - 德益云企业服务
  • 从“一步一想”到“先全局规划”:ReAct vs Plan-and-Execute,AI Agent的两种“思考方式”
  • rust 学习(11):包、Crate、模块系统
  • 如何快速成为Beads开源项目的核心贡献者:从零到一的完整路径
  • LineaPy 常见问题解答:新手到专家的进阶之路
  • 3步实现GPT模型零代码监控:Langfuse OpenAI集成完全指南
  • 消息队列积压问题分析与韧性架构设计
  • 高分论文的秘密|外文翻译/英文摘要这样写绝不扣分✅
  • 2026武汉电子标书制作代上传机构大盘点:怎么选?避坑攻略有哪些?靠谱服务商实力解析 - 商业大观