龙空技术网

基于PyQt5表格控件TableWidget的csv文件内容显示

70后红太阳 133

前言:

而今我们对“javacsv文件行列转换”都比较重视,你们都想要了解一些“javacsv文件行列转换”的相关知识。那么小编同时在网上汇集了一些对于“javacsv文件行列转换””的相关文章,希望大家能喜欢,我们一起来了解一下吧!

(70后红太阳2020年4月写于成都)

一、配置环境

开发环境:Win7;

开发工具:Python 3.8.2 IDLE,Qt Designer 5.13.2;

Python安装目录:D:\python;

文件保存目录:D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示;

路径配置:在cmd下,运行path=%path%;D \python\python38-32\scripts;D: \python\python38-32,让Python的相关程序可以调用。

二、设计界面

运行Qt Designer 5.13.2开发工具,设计图形用户界面,设计结果如图1所示:

图1:“基于PyQt5表格控件TableWidget的csv文件内容显示”的用户界面设计图

将设计结果保存到目录D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示,命名为:ShowMain.ui。

在cmd下,运行pyuic5 -o D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示\ShowMain.py D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示\ShowMain.ui。

运行后,就将图形用户界面文件ShowMain.ui转换成了Python源代码文件ShowMain.py。

三、编写代码

运行Python 3.8.2 IDLE开发工具,编写代码并调试,将代码保存到目录D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示,命名为:DisplayCsv.py。

源代码编程结果及其注释如下所示:

#=====1、导入包=====import sys #导入sys模块import ShowMain #导入ShowMain窗体模块(用QtDesigner设计的)from PyQt5.QtWidgets import * #导入PyQt5的QtWidgets(Qt小部件)相关模块组件import csv #导入csv模块 #=====2、显示图形用户界面=====app=QApplication(sys.argv) #创建应用程序实例MainWindow=QMainWindow() #创建主窗体实例ui=ShowMain.Ui_MainWindow() #创建已设计窗体ShowMain实例ui.setupUi(MainWindow) #把ShowMain与主窗体进行结合MainWindow.setFixedSize(MainWindow.width(), MainWindow.height()) #屏蔽掉主窗体最大化按钮MainWindow.show() #显示结合后的主窗体#=====3、将csv文件内容显示到表格控件QTableView中=====#   ===3.1、打开csv文件并读取到列表中===csv_file=csv.reader(open('沪深300指数历史交易数据.csv','r')) #以只读方式打开csv文件csv_list=[] #定义存储整个csv文件的列表for line in csv_file: #按行对csv文件进行循环    csv_list.append(line) #按行将csv文件读取到列表中#   ===3.2、设置表格控件的行列数===RowCount=len(csv_list) #得到csv文件的行数ColCount=len(csv_list[0]) #得到csv文件的列数ui.tableWidget.setRowCount(RowCount) #设置表格控件的行数ui.tableWidget.setColumnCount(ColCount) #设置表格控件的列数#   ===3.3、显示表格控件表头===Hheader_list=[] #定义存储水平方向表头的列表for Col in range(0,ColCount,1): #按列进行循环    Hheader_list.append('%s'%(csv_list[0][Col])) #给水平方向表头列表赋值ui.tableWidget.setHorizontalHeaderLabels(Hheader_list) #设置水平方向表头标签Vheader_list=[] #定义存储垂直方向表头的列表for Row in range(0,RowCount,1): #按行进行循环    Vheader_list.append('%s%d%s'%('第',Row+1,'行')) #给垂直方向表头列表赋值ui.tableWidget.setVerticalHeaderLabels(Vheader_list) #设置垂直方向的表头标签#   ===3.4、显示表格控件数据===for Row in range(0,RowCount,1): #按行进行循环    for Col in range(0,ColCount,1): #按列进行循环        ui.tableWidget.setItem(Row,Col,QTableWidgetItem(csv_list[Row][Col])) #为每个表格添加数据#=====4、系统退出命令=====     sys.exit(app.exec_()) #系统接收退出命令后,退出
四、运行程序

在Python 3.8.2 IDLE开发工具中,按F5键,运行DisplayCsv.py程序,运行结果如图2所示:

图2:“基于PyQt5表格控件TableWidget的csv文件内容显示”的运行结果图

DisplayCsv.py文件只能在安装有python的电脑中运行,要让它能在其他没有安装python的电脑中运行,需将其生成exe文件。

在cmd下,运行pyinstaller –F -w --paths=D:\python \Python38-32\Lib\site-packages\PyQt5\Qt\bin --paths=D:\python \Python38-32\Lib\site-packages\PyQt5\Qt\plugins D:\python\基于PyQt5表格控件TableWidget的csv文件内容显示\DisplayCsv.py。

运行后,就将DisplayCsv.py转换成了DisplayCsv.exe,将DisplayCsv.exe文件传送到其他没有安装python的电脑就可以运行,运行结果如图2所示。此处需要说明是,在32位电脑上生成的exe文件只能在其他32位电脑上运行;在64位电脑上生成的exe文件只能在其他64位电脑上运行。

标签: #javacsv文件行列转换