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,一经查实,立即删除!

相关文章

在SpringCloud中实现服务监控与告警的业务指标监控

在Spring Cloud中,可以使用一些工具和框架来实现服务监控与告警的业务指标监控。本文将介绍一种常用的方案,使用Prometheus和Grafana来实现监控指标的采集和展示,并结合Alertmanager实现告警功能。 Prometheus简介 Prometheus是一款开源的监控…

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

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

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

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

代码随想三刷图论篇2

代码随想三刷图论篇2 104. 建造最大岛屿题目代码 110. 字符串接龙题目代码 105. 有向图的完全可达性题目代码 106. 岛屿的周长题目代码 104. 建造最大岛屿 题目 链接 代码 import java.util.*; class Main{public static void main(String[] args){Scanner sc new Scanner…

安全运营概述

安全运营概述 概述安全运营的工作对内安全运营工作对外安全运营工作品牌建设 概述 安全是一个过程,安全是靠运营出来的,公司会不断的有新业务的变更,新产品的发布,新版本的升级,技术架构的升级,底层系统的…

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就是反序列化和命令执行,还有个正则应…

JS【详解】函数 (声明函数、调用函数、函数表达式、匿名函数、立即执行函数、箭头函数、内置函数、回调函数、私有函数、高阶函数、模拟函数重载)

函数用于封装一段具有特定功能代码,通过调用的形式执行。 每个函数都有返回值,无 return 语句时返回 undefined 声明函数 在浏览器中,在最外层声明的函数,都是 Window 对象的方法函数的声明会被提前:可以在函数声明之…

QThread和std::thread

在 Qt 中, 我们经常会用到多线程,这时候就需要纠结是使用 Qt 的 QThread 还是使用 C 标准库的 std::thread。 这里记录一下我自己的理解,先介绍一下 QThread 和 std::thread 的使用方法,对比一下他们的不同,最后说一下…

【Redis】集群

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

理兔chat开发日记

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

unity局部坐标和世界坐标角度介绍

在Unity中,局部坐标(Local Coordinates)和世界坐标(World Coordinates)是描述物体位置的两种不同方式: 局部坐标(Local Coordinates): 局部坐标是相对于物体自身的坐标系…

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

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

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

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

Linux硬件中断(IRQ)的基础知识

目录 一、中断的概念1.1 什么是硬件中断1.2 中断类型二、中断处理的工作原理2.1 中断请求2.2 中断向量2.3 中断服务例程(ISR)2.4 上下文切换2.5 中断处理2.6 任务恢复三、中断处理的编程3.1 注册中断处理函数3.2 注销中断处理函数四、中断和系统性能4.1 中断风暴4.2 IRQ亲和性…

创作模板四【创作模板】

xxx【创作模板四】 前言推荐说明最后 前言 2023年7月7日 以下内容源自《【创作模板四】》 仅供学习交流使用 推荐 无 说明 大三下期末考试进行中 【最后】的文案: 当时期末复习总结的文章,很少有人点赞 确实是很失望,只能自娱自乐&…

数据库SQL Server时间函数Datetime

文章目录 SQL Server 提供了一系列用于处理日期和时间的函数,以下是一些常用的时间函数: GETDATE():返回当前的日期和时间。 SELECT GETDATE();CURRENT_TIMESTAMP:与 GETDATE() 类似,返回当前的日期和时间。 SELECT…

CloudCone服务器2核1G一年只需15刀

CloudCone服务器博主本人已稳定使用一年多了,非常划算且稳定。2核1G一年才15,相比其他厂家2核动辄月付10左右的价格,cloudcone简直没有对手。 但是15刀这些划算的内容无法在官网直接找到。 博主这里记录 cloudcone.top 这个url,…

Linux Vim编辑器全攻略:从入门到精通

引言 简要介绍Vim编辑器的历史、地位及其在Linux及Unix系统中的广泛应用。强调Vim作为程序员和系统管理员的首选工具之一,其强大的文本编辑能力和高效的编辑模式。 Vim基础篇 安装Vim 介绍在不同Linux发行版上安装Vim的方法(如使用apt-get、yum、dnf等…