PySide(PyQt),csv文件的显示

1、正常显示csv文件

import sys
import csv
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QWidgetclass CSVTableWidgetDemo(QMainWindow):def __init__(self):super().__init__()# 创建显示控件self.widget = QWidget(self)self.widget.setGeometry(100, 100, 300, 300)# 创建表格控件self.table_widget = QTableWidget(self.widget)self.resize(600, 400)# 加载 CSV 文件self.load_csv("demo.csv")def load_csv(self, filename):try:# 打开 CSV 文件with open(filename, newline='', encoding='gbk') as csvfile:reader = csv.reader(csvfile)csv_data = list(reader)# 设置行列数self.table_widget.setRowCount(len(csv_data))self.table_widget.setColumnCount(len(csv_data[0]))# 填充表格数据for row_idx, row_data in enumerate(csv_data):for col_idx, col_data in enumerate(row_data):item = QTableWidgetItem(col_data)self.table_widget.setItem(row_idx, col_idx, item)# 隐藏行号和列号self.table_widget.verticalHeader().setVisible(False)self.table_widget.horizontalHeader().setVisible(False)except FileNotFoundError:print(f"Error: 文件 '{filename}' 未找到.")if __name__ == "__main__":app = QApplication(sys.argv)window = CSVTableWidgetDemo()window.show()sys.exit(app.exec())

 2、使用uic框架的demo

 在Qt Designer中新建QMainWindow,命名为csvShow.ui。QMainWindow上有两个部件:widget_csv和btn_exit。

使用pyuic工具将ui文件转换为py文件并导入,主脚本:

# encoding: utf-8
import csvfrom PySide6.QtCore import QObject, Signal
from PySide6.QtWidgets import QApplication, QMainWindow, QTableWidgetItem, QTableWidget
import sysimport csvShow_rc  # 导入需要显示的画面# 定义需要显示的画面类
class MainWindow(QMainWindow, csvShow_rc.Ui_MainWindow):def __init__(self):super().__init__()# 作业函数
class Jobs:# 系统的初始化@staticmethoddef start_todo():Jobs.load_csv(window1.widget_csv, 'demo.csv')   # 加载和显示csv文件# 退出系统前的保存、清理、释放等操作@staticmethoddef before_quit():pass# 加载和显示csv文件@staticmethoddef load_csv(widget, filename):widget.table_widget = QTableWidget(widget)widget.table_widget.setFixedSize(widget.width(), widget.height())try:# 打开 CSV 文件with open(filename, newline='', encoding='gbk') as csvfile:reader = csv.reader(csvfile)csv_data = list(reader)# 设置行列数widget.table_widget.setRowCount(len(csv_data))widget.table_widget.setColumnCount(len(csv_data[0]))# 填充表格数据for row_idx, row_data in enumerate(csv_data):for col_idx, col_data in enumerate(row_data):item = QTableWidgetItem(col_data)widget.table_widget.setItem(row_idx, col_idx, item)# 隐藏行号和列号widget.table_widget.verticalHeader().setVisible(False)widget.table_widget.horizontalHeader().setVisible(False)except FileNotFoundError:print(f"Error: 文件 '{filename}' 未找到.")# 信号连接和槽函数
def signal_slot():# slot函数的demodef window1_btn_exit_clicked():  # 定义槽函数window1.close()window1.btn_exit.clicked.connect(window1_btn_exit_clicked)  # 连接信号到槽函数# 定义全局信号的槽函数def slot_signal1():passui.Signal1.connect(slot_signal1)  # 连接信号到槽函数# 退出系统之前的操作app.aboutToQuit.connect(Jobs.before_quit)# #############################主程序##################################
if __name__ == '__main__':app = QApplication(sys.argv)# #######################项目级别的定义#############################class UI(QObject):  # 将项目定义为QObject,用来管理项目级别的信号和变量Signal1 = Signal()  # 这是一个全局的信号# ###########__init__###############def __init__(self):super().__init__()# ########################本项目的实例化############################ui = UI()  # 项目实例化# ########################实例化画面###############################window1 = MainWindow()  # 画面实例化window1.show()  # 显示画面window1.setupUi(window1)  # 画面初始化Jobs.start_todo()  # 系统的初始化# 信号的连接和槽函数signal_slot()sys.exit(app.exec())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/872392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动手学深度学习——3.多层感知机

1.线性模型 线性模型可能出错 例如,线性意味着单调假设: 任何特征的增大都会导致模型输出的增大(如果对应的权重为正), 或者导致模型输出的减小(如果对应的权重为负)。 有时这是有道理的。 例…

ENSP防火墙NAT智能选举综合实验

实验目的及其拓扑图: 创建我的拓扑: 新建修改配置fw1上的nat策略和安全策略: pc2ping1.1.1.1测试结果: 服务器映射配置: 配置对应安全策略: 配置fw2,子公司的NAT策略: 配置全局选路路…

Commons-Collections篇-CC6链分析

前言 我们前两篇已经分析过URLDNS链和CC1链,我们这次分析的链就是基于前两条链之上的CC6链 CC6链的使用对于版本来说没有CC1限制那么大,只需要commons collections 小于等于3.2.1,都存在这个漏洞 0.环境安装 可以接着使用我们之前分析CC1链…

AV1技术学习:Affine Motion Compensation

一、Affine Model Parameter 除了传统的平移运动补偿,AV1 还支持仿射变换模型,将当前像素点 (x, y) 通过以下方式投影到参考帧中的预测像素点 (x, y). 参数 (h13, h23) 对应于平移模型中使用的常规运动向量。 参数 h11 和 h22 控制垂直和水平轴上的比例…

unseping

nnnd,这道题谁标的难度1!参考文章:江苏工匠杯-unseping&序列化,正则绕过(全网最简单的wp)_江苏工匠杯unseping-CSDN博客 这是这道题的源码,一看exec和unserialize就是反序列化和命令执行,还有个正则应…

【Redis】集群

文章目录 一、集群是什么?二、 Redis集群分布式存储为什么redis集群的最大槽数是16384(不太懂)redis的集群主节点数量基本不可能超过1000个 三、 配置集群(三主三从)3.1 配置config文件3.2 启动六台redis3.2 通过redis…

理兔chat开发日记

1.注册 注册跟以前的差不多,我们将我们的验证码放在redis下,我们在注册的时候先判断我们输入的验证码是否正确 验证码成功后在我们的实现类中,我们先判断邮箱是否重复,不重复我们就继续注册 我们拥有联号注册的功能,就…

Puppeteer 是什么以及如何在网络抓取中使用它 | 2024 完整指南

网页抓取已经成为任何处理网页数据提取的人都必须掌握的一项重要技能。无论你是开发者、数据科学家还是希望从网站收集信息的爱好者,Puppeteer都是你可以使用的最强大工具之一。本完整指南将深入探讨什么是Puppeteer以及如何有效地在网页抓取中使用它。 Puppeteer简…

日志的编写与线程池的结合

目录 一、认识日志 二、时间的等级划分 三、日志的输出端 3.1 保存至文件 四、日志的部分信息 4.1 日志等级 4.2 日志时间 五、加载日志 六、日志的宏编写 七、ThreadPool Log 一、认识日志 记录事件: 日志用于记录系统运行过程中发生的各种事件&…

elementui 日历组件el-calendar使用总结

功能: 1.日历可以周视图、月视图切换; 2.点击月视图中日期可以切换到对应周视图; 3.点击周视图查看当日对应数据; 4.周、月视图状态下,点击前后按钮,分别切换对应上下的周、月; 5.点击回到…

算法 —— 高精度(模拟)

目录 加法高精度 两个正整数相加 两个正小数相加 两正数相加 减法高精度 两个正整数相减 两个正小数相减 两正数相减 加减法总结 乘法高精度 两个正整数相乘 两个正小数相乘 乘法总结 加法高精度 题目来源洛谷:P1601 AB Problem(高精&#x…

如何PR到别人仓库(指定分支,无废话)

如何PR到别人仓库(指定分支) 记录一下,之前都是直接master分支,现在记录如何pr到别人仓库的其他分支 首先进入别人仓库然后点击fork到自己仓库 步骤(以博主自己一个例子为例) (1)…

c++ primer plus 第16章string 类和标准模板库,16.1.3 使用字符串

c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串 c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串 文章目录 c primer plus 第16章string 类和标准模板库,16.1.3 使用字符串16.1.3 使用字符串程序清单16.3 hangman.cpp 16.1.3 使用字符串 现在&a…

【题目/训练】二叉树的创建遍历(递归非递归)

一、根据二叉树创建字符串 思路:在正常前序递归遍历的基础上,单独加上一个考虑到右子树为空的情况,如下:其结果为 1(2(4(5)(6)))&…

馥郁珍藏:品味红酒的层次与细腻

在生活的点滴中,总有一些事物以其不同的魅力,让我们为之驻足,为之沉醉。红酒,便是其中之一。它不仅仅是一种饮品,更是一种情感的寄托,一种生活的艺术。今天,就让我们一起走进红酒的世界&#xf…

工控主板:搭载海光3300处理器的全国产化工控主板

最近为客户定做了一款全国产化的工控机主板。搭载海光3300核心板的含有丰富接口的工控主板。

一张图生成绘画全过程,这下人人都成“原画师”了

玩过SD的应该都知道ControlNet吧,最近ControlNet的作者Lvmin Zhang 又搞了一个开源项目PaintsUndo,在Github刚上线就收获了2.7k Star。 只需要上传一张静态图像,PaintsUndo就可以根据提供的图像自动生成对应的绘画全过程视频。 展示从一张白…

linux中关于环境变量的常用的设置方法

一. linux中设置环境变量的方式 1.使用/etc/environment, 是一个全局的环境变量设置文件,它会影响到所有用户和所有进程。当你需要设置一个全局的环境变量时,应该使用这个文件。这个文件的格式是 KEYvalue,每行一个环境变量。 2. 使用/etc/…

C# Winform的三态CheckBox,以及批量修改Panel中的控件

在C# WinForms中,如果你想批量修改一个Panel容器内的所有CheckBox控件的状态,你可以使用foreach循环来遍历Panel的Controls集合。下面是一个示例,展示了如何将一个Panel内所有的CheckBox控件设为选中状态(Checked true&#xff0…

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测,下一个字应该是什么? 如果这个模型下载很慢,你就可以通过这种方式从摩大社区进行下载。 这种方式, 每一次候…