承载界面:

# coding=utf-8
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import class_datafile QTextCodec.setCodecForCStrings(QTextCodec.codecForName('utf8')) class Form(QMainWindow):
def __init__(self,parent=None):
super(Form,self).__init__(parent)
self.setWindowTitle('DataAnylaze')
self.setWindowIcon(QIcon('image/3.png'))
self.setBaseSize(500,500)
#self.resize(1000,1000)
self.setMinimumSize(600,600)
self.showMaximized() self.table=QTableWidget()
self.setCentralWidget(self.table) self.createAction()
self.createMenu()
self.createToolBar() def createAction(self):
self.openFileAct=QAction(QIcon('image/open.png'),u'打开',self)
self.connect(self.openFileAct,SIGNAL('triggered()'),self.openFile) self.saveFileAct=QAction(QIcon('image/save.png'),u'保存',self)
self.connect(self.saveFileAct,SIGNAL('triggered()'),self.saveFile) self.saveAnotherFileAct=QAction(QIcon('image/saveanother.png'),u'另存为',self)
self.connect(self.saveAnotherFileAct,SIGNAL('triggered()'),self.saveAnotherFile) self.setRightAct=QAction(QIcon('image/r.png'),u'右对齐',self)
self.connect(self.setRightAct,SIGNAL('triggered()'),self.setTableRAlignment) self.setLeftAct=QAction(QIcon('image/l.png'),u'左对齐',self)
self.connect(self.setLeftAct,SIGNAL('triggered()'),self.setTableLAlignment) self.setMiddleAct=QAction(QIcon('image/m.png'),u'居中对齐',self)
self.connect(self.setMiddleAct,SIGNAL('triggered()'),self.setTableMAlignment) def createMenu(self):
fileMenu=self.menuBar().addMenu(u'文件')
fileMenu.addAction(self.openFileAct)
fileMenu.addAction(self.saveFileAct)
fileMenu.addAction(self.saveAnotherFileAct) def createToolBar(self):
fileToolBar=self.addToolBar(u'文件')
fileToolBar.addAction(self.openFileAct)
fileToolBar.addAction(self.saveFileAct)
fileToolBar.addAction(self.saveAnotherFileAct) aliToolBar=self.addToolBar(u'对齐')
aliToolBar.addAction(self.setLeftAct)
aliToolBar.addAction(self.setRightAct)
aliToolBar.addAction(self.setMiddleAct) def openFile(self):
file=QFileDialog.getOpenFileName() dataFile=class_datafile.dataFileClass()
dataFile.setFileDir(file) self.data,self.columnName=dataFile.getAllData() #设置表格行列数量
rowNum=dataFile.getRowLen()
colNum=dataFile.getColumnLen()
self.table.setColumnCount(colNum)
self.table.setRowCount(rowNum) #设置表头
for i in range(len(self.columnName)):
self.table.setHorizontalHeaderItem(i,QTableWidgetItem(self.columnName[i])) #设置表格内容
for j in range(len(self.columnName)):
for k in range(rowNum):
self.table.setItem(k,j,QTableWidgetItem(self.data[self.columnName[j]][k])) mes=QMessageBox()
mes.information(self,u'测试读取数据',u'读了%d行数据' % (rowNum+1),QMessageBox.Ok) def saveFile(self):
pass def saveAnotherFile(self):
pass def setTableRAlignment(self):
for j in range(self.table.columnCount()):
for i in range(self.table.rowCount()):
self.table.item(i,j).setTextAlignment(Qt.AlignRight|Qt.AlignVCenter) def setTableMAlignment(self):
for j in range(self.table.columnCount()):
for i in range(self.table.rowCount()):
self.table.item(i,j).setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter) def setTableLAlignment(self):
for j in range(self.table.columnCount()):
for i in range(self.table.rowCount()):
self.table.item(i,j).setTextAlignment(Qt.AlignLeft|Qt.AlignVCenter) app=QApplication(sys.argv)
form=Form()
form.show()
app.exec_()

---------------------------------

数据解析:

 # coding=utf-8
import sys
import copy
from PyQt4.QtCore import *
from PyQt4.QtGui import * #QTextCodec.setCodecForTr(QTextCodec.codecForName('utf8')) class dataFileClass():
def __init__(self,parent=None):
self.runflag=0
self.data={}
self.columnName=[] def readData(self):
if self.runflag==1:
fileData=open(str(self.file),'r')
flagcol=0
self.rownum=0
for line in fileData:
linelist=line.split(',')
if flagcol==0:
self.columnName=copy.copy(linelist)
for name in self.columnName:
self.data[name]=[]
flagcol+=1
else:
for i in range(len(linelist)):
self.data[self.columnName[i]].append(linelist[i])
self.rownum+=1 fileData.close() def setFileDir(self,dir):
self.file=dir
self.runflag=1
self.readData() def getColumnNames(self):
return self.data.keys() def getColumnLen(self):
return len(self.columnName) def getRowLen(self):
return self.rownum def getValue(self,columnName,row):
if self.data.has_key(columnName):
return self.data[columnName][row] def getAllData(self):
return self.data,self.columnName

【PyQt】分析承载界面的更多相关文章

  1. Reveal分析IOS界面,plist文件读取

    Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...

  2. python使用pyqt写带界面工具

    上篇介绍的使用python自带tkinter包,来写带界面的工具. 此篇介绍使用pyqt来开发测试工具. tkinter的好处是python官方自带,上手容易(但手写控件复杂),布局和摆放都不直观和容 ...

  3. 使用PyQt开发图形界面Python应用专栏目录

    ☞ ░ 前往老猿Python博文目录 ░ 本专栏为收费专栏的文章目录,对应的免费专栏为<PyQt入门知识目录>,两个专栏都为基于PyQt的Python图形界面开发基础教程,只是收费专栏中的 ...

  4. 使用PyQT开发图形界面程序

    环境 python:v3.3 PyQT:v4.10.4 注意问题: 在主文件前面加入,否则当前的工程模块无法找到 import sys sys.path.append(".") 入 ...

  5. Python-使用PyQT生成图形界面

    1.安装PyQT5以及QT Designer工具包 pip install PyQt5 pip install PyQt5-tools -i http://pypi.douban.com/simple ...

  6. Android 将APK文件安装到AVD中并分析其界面结构

    配置环境变量 将android sdk 中的android-sdk\tools .android-sdk\platform-tools 添加到windows环境变量中.用于打开android sdk中 ...

  7. [Abp vNext 源码分析] - 21. 界面与文字的本地化

    一.简介 ABP vNext 提供了全套的本地化字符串支持,具体用法可以参考官方使用文档.vNext 本身是对 Microsoft 提供的本地化组件进行了实现,通过 JSON 文件提供本地化源,这一点 ...

  8. 第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析

    老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法 ...

  9. PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析

    一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果, ...

随机推荐

  1. (原创)开发使用Android studio所遇到的一些问题总结

    1.Android studio下载链接地址(无需FQ):包括先行版和正式版(推荐使用正式版bug少) http://www.androiddevtools.cn/ 2.第一次安装避免成功先不要急着打 ...

  2. Odoo,OpenERP widget标签

    Odoo,OpenERP widget标签 widget="statusbar" 头部状态条标签 widget="email"  电子邮件地址标签 widget ...

  3. 基于Python-Flask实现的网站例子

    概述 使用Flask写的体育网站 包括(注册 论坛 文章评论 组建战队 后台管理)等功能 示例地址文中有写 萌新 请多指教 详细 代码下载:http://www.demodashi.com/demo/ ...

  4. iOS-格式化金额,三位一逗号

    代码地址如下:http://www.demodashi.com/demo/11244.html 项目版本更新迭代中, 新增需求: 所有金额必须用标准会计表示方式(¥94,862.57). 而之前金额展 ...

  5. 【微信小程序】日历插件,适用于酒店订房类小程序

    本插件在原作者(传送门:http://blog.csdn.net/lengyue1084/article/details/71248778)基础上升级. 增加了点击选择具体日期和数据传输功能. 效果图 ...

  6. 1 bootstrap table null默认显示为 - 要查源码 2 记一个很无语的bug

    本来返回的json 3个true 7个false的 结果显示10个true 因为本来是好的 结果判断的问题 给全部赋值true了

  7. MVC数据验证Model Validation

    Required必须项验证属性 [Required] public string FirstName { get; set; } //ID编号 [ScaffoldColumn(false)] [Req ...

  8. List与String的相互转换

    List转字符串,用逗号隔开 List<string> list = new List<string>(); list.Add("a"); list.Add ...

  9. oblique perspective projection

    参考: https://en.wikibooks.org/wiki/GLSL_Programming/Vertex_Transformations <3D游戏与计算机图形学中的数学方法>E ...

  10. Linux中history历史命令使用方法详解

    当你在玩Linux的时候,如果你经常使用命令行来控制你的Linux系统,那么有效地使用命令历史机制将会使效率获得极大提升.事实上,一旦你掌 握了我在下面给出的15个有关Linux history历史命 ...