【PyQt】分析承载界面
承载界面:
# 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】分析承载界面的更多相关文章
- Reveal分析IOS界面,plist文件读取
Reveal分析IOS界面,需要得到app的 softwareVersionBundleId上传到iphone中 , 而IOS8的iTunesMetadata.plist (设备路径/var/mobi ...
- python使用pyqt写带界面工具
上篇介绍的使用python自带tkinter包,来写带界面的工具. 此篇介绍使用pyqt来开发测试工具. tkinter的好处是python官方自带,上手容易(但手写控件复杂),布局和摆放都不直观和容 ...
- 使用PyQt开发图形界面Python应用专栏目录
☞ ░ 前往老猿Python博文目录 ░ 本专栏为收费专栏的文章目录,对应的免费专栏为<PyQt入门知识目录>,两个专栏都为基于PyQt的Python图形界面开发基础教程,只是收费专栏中的 ...
- 使用PyQT开发图形界面程序
环境 python:v3.3 PyQT:v4.10.4 注意问题: 在主文件前面加入,否则当前的工程模块无法找到 import sys sys.path.append(".") 入 ...
- Python-使用PyQT生成图形界面
1.安装PyQT5以及QT Designer工具包 pip install PyQt5 pip install PyQt5-tools -i http://pypi.douban.com/simple ...
- Android 将APK文件安装到AVD中并分析其界面结构
配置环境变量 将android sdk 中的android-sdk\tools .android-sdk\platform-tools 添加到windows环境变量中.用于打开android sdk中 ...
- [Abp vNext 源码分析] - 21. 界面与文字的本地化
一.简介 ABP vNext 提供了全套的本地化字符串支持,具体用法可以参考官方使用文档.vNext 本身是对 Microsoft 提供的本地化组件进行了实现,通过 JSON 文件提供本地化源,这一点 ...
- 第15.17节 PyQt(Python+Qt)入门学习:PyQt图形界面应用程序的事件捕获方法大全及对比分析
老猿Python博文目录 老猿Python博客地址 按照老猿规划的章节安排,信号和槽之后应该介绍事件,但事件在前面的随笔<PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法 ...
- PyQt(Python+Qt)实现的GUI图形界面应用程序的事件捕获方法大全及对比分析
一. 概述 PyQt的图形界面应用中,事件处理类似于Windows系统的消息处理.一个带图形界面的应用程序启动后,事件处理就是应用的主循环,事件处理负责接收事件.分发事件.接收应用处理事件的返回结果, ...
随机推荐
- Git原始笔记
.dir .mkdir lxit .cd lxit .git init(git仓库不要动!!! 除非用命令动它里面的文件,新添加的可以动) .ls .pwd Config: git config -- ...
- AngularJS路由设置方法
Module.config(['$routeProvider', function($routeProvider) { $routeProvider .when('/mall-home', { tem ...
- 分布式消息系统Jafka入门指南
分布式消息系统Jafka入门指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.JafkaMQ简单介绍 JafkaMQ是一个分布式的公布/订阅消息系 ...
- 算法笔记_080:蓝桥杯练习 队列操作(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 队列操作题.根据输入的操作命令,操作队列(1)入队.(2)出队并输出.(3)计算队中元素个数并输出. 输入格式 第一行一个数字N. 下面N行, ...
- webDriver API——第6部分Locate elements By
These are the attributes which can be used to locate elements. See the Locating Elements chapter for ...
- 1、jQuery概述
JQuery基本功能 ① 访问和操作Dom元素 ② 控制页面样式 ③ 对页面事件的处理 ④ 大量插件在页面中的运用 ⑤ 与Ajax技术的完美结合 $(document).ready ...
- Drupal的钩子系统
Drupal的很多功能都是可以定制的.以导航菜单为例,blog模块需要在菜单上添加一些功能,comment模块需要在菜单上添加一些功能,我们开发的自定义模块也需要在菜单上添加一些功能.Drupal开发 ...
- Git-在一个电脑上同时使用两个Git的账号
前言 又需要登录公司的账号,又想在电脑上使用自己的账号. 实现 首先是git config方面的设置,要取消掉原本对于git账号的全局设置. git config --global --unset u ...
- Nginx常用配置整理
1.全局块:配置影响nginx全局的指令.一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等. worker_pro ...
- Jumpserver web界面跳板机
Jumpserver.org 普通用户 仪表盘 查看主机 上传下载 访问官网 欢迎使用Jumpserver开源跳板机系统 帮助 Log out 查看资产 仪表盘 资产管理 查看资产 主机详细信息列表 ...