pyqt 动态更换表头和数据

ops/2024/10/19 7:29:53/

目录

pyqt%20%E5%8A%A8%E6%80%81%E6%9B%B4%E6%8D%A2%E8%A1%A8%E5%A4%B4%E5%92%8C%E6%95%B0%E6%8D%AE%E4%BB%A3%E7%A0%81-toc" style="margin-left:40px;">pyqt 动态更换表头和数据代码


效果图:

pyqt%20%E5%8A%A8%E6%80%81%E6%9B%B4%E6%8D%A2%E8%A1%A8%E5%A4%B4%E5%92%8C%E6%95%B0%E6%8D%AE%E4%BB%A3%E7%A0%81">pyqt 动态更换表头和数据代码

from PyQt5.QtGui import QColor, QBrush
from PyQt5.QtWidgets import QApplication, QTableWidget, QVBoxLayout, QWidget, QPushButton, QTableWidgetItemclass Example(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 初始化表格self.tableWidget = QTableWidget(self)self.column_colors = [QColor('red'), QColor('green'), QColor('blue'),  QColor('purple'), QColor('orange'), QColor('pink'), QColor('lightblue'), QColor('lightgreen')]self.setWindowTitle('I问财')self.setGeometry(100, 100, 800, 600)header = self.tableWidget.horizontalHeader()header.setStyleSheet("QHeaderView::section { background-color: white ; color: red; font-weight: bold; }")# 创建一个按钮,用于改变表格数据和表头btn = QPushButton('Change to New Data', self)btn.clicked.connect(self.loadNewData)self.updateTable(['Name', 'Age', 'Country'], [['Alice', '24', 'USA'], ['Bob', '30', 'Canada'], ['Charlie', '28', 'UK']])# 布局layout = QVBoxLayout()layout.addWidget(self.tableWidget)layout.addWidget(btn)self.setLayout(layout)def updateTable(self, headers, data):# 设置列数column_count = len(headers)self.tableWidget.setColumnCount(column_count)self.tableWidget.setRowCount(len(data))self.setGeometry(100, 100, 600, 600)# 设置表头self.tableWidget.setHorizontalHeaderLabels(headers)self.tableWidget.setShowGrid(True)# 填充数据for row_index, row in enumerate(data):for column, item in enumerate(row):item = QTableWidgetItem(item)item.setForeground(QBrush(self.column_colors[column % len(self.column_colors)]))  # 根据列设置文本颜色self.tableWidget.setItem(row_index, column,item)def loadNewData(self):# 新数据集和表头new_headers = ['First Name', 'Last Name', 'Email', 'Country']new_data = [['Alice', 'Smith', 'alice.smith@example.com', 'USA'], ['Bob', 'Brown', 'bob.brown@example.com', 'Canada']]# 更新表格self.updateTable(new_headers, new_data)if __name__ == '__main__':import sysapp = QApplication(sys.argv)ex = Example()ex.show()sys.exit(app.exec_())


http://www.ppmy.cn/ops/20859.html

相关文章

加密安全-openssh服务

openssh服务 1、ssh配置 ssh第一次远程链接需要客户端输入yes,如下: # 109节点第一次通过ssh链接106,需要手动输入yes root109:~$ ssh 192.168.31.106 The authenticity of host 192.168.31.106 (192.168.31.106) cant be established. ED…

RFC 6071: IP Security (IPsec) and Internet Key Exchange (IKE) Document Roadmap

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/96882d1fb67b4383bc77c4dd421f7b

解决eureka服务注册名报错

解决eureka服务注册名报错 解决eureka服务注册名报错简介正文使用RestTemplate.getForObject( url,Class)方法中,url直接使用服务注册名进行拼接后无法正常远程调用。如下 报错404,说明没访问到我的解决方法:换依赖版本原来的版本…

ddos云服务器有哪些防御方法和优势

本文将介绍云服务器遇到DDoS攻击的应对方法,包括流量清洗、负载均衡、防火墙设置和CDN加速等。同时,文章还介绍了ddos云服务器的防御优势,包括高防护能力、自动化防御、实时监控和报警以及弹性扩展等。通过这些防御方法和ddos云服务器的应用&…

记录浏览器打开网站拦截提示不安全解决方法

浏览器可能会因为多种原因显示“不安全”的警告,这通常是由于安全设置不当或配置错误造成的。以下是一些常见的原因和解决方法: 1. HTTPS未启用 原因:如果网站使用HTTP而不是HTTPS,浏览器可能会显示不安全的警告。 解决方法:配置SSL/TLS证书并使用HTTPS来加密数据传输…

mysql binlog 中的位点生成逻辑是什么?

在 MySQL 中,二进制日志(binary log 或 binlog) 是用于记录所有修改了数据库状态的语句的文件。这包括表结构变更和数据变更(如 INSERT、UPDATE 和 DELETE 操作)。二进制日志是 MySQL 数据复制的基础,并且对…

Atom-7B-Chat本地推理

Atom-7B-Chat 本地推理 基础环境信息(wsl2安装Ubuntu22.04 miniconda) 使用miniconda搭建环境 (base) :~$ conda create --name Llama-Chinese python3.10 Retrieving notices: ...working... done Channels:- defaults Platform: linux-64 Collectin…

Orange3数据可视化(组件概览)

概要 大家见过Orange3提供的丰富数据可视化组件吗? Orange3为您提供了一系列生动的图表工具,包括树图、箱线图、小提琴图、分布图、散点图、折线图、条形图、筛图、马赛克图、自由投影、线性投影、雷达图、热力图、韦恩图、轮廓图、毕达哥拉斯树、毕达哥…