欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > PySide(PyQt),csv文件的显示

PySide(PyQt),csv文件的显示

2024/10/24 4:35:36 来源:https://blog.csdn.net/xulibo5828/article/details/140403465  浏览:    关键词: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# 退出系统前的保存、清理、释放等操作@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())

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com