基于Python+QT的gui程序开发实现


Posted in Python onJuly 03, 2020

最近帮朋友做了一个将文本文件按条件导出到excel里面的小程序。使用了PyQT,发现Python真是一门强大的脚本语言,开发效率极高。

首先需要引用

from PyQt4 import QtGui, uic, QtCore

很多控件像QPushButton是从QtGui的空间中得来的,下面def __init__(self, parent=None)中定义了界面的设计及与控件相互联系的方法。

class AddressBook(QtGui.QWidget):
  def __init__(self, parent=None):
    super(AddressBook, self).__init__(parent)
    #button控件
    self.out_put = QtGui.QPushButton("&Out_put")
    #该button在被单击之后,调用self.out的方法
    self.out_put.clicked.connect(self.out)
    browseButton = self.createButton("&Browse...", self.browse)
 
    nameLabel = QtGui.QLabel("Location:")
    self.nameLine = QtGui.QLineEdit()
    addressLabel = QtGui.QLabel("Loading:")
    self.addressText = QtGui.QTextEdit()
    self.createFilesTable()
 
    buttonLayout1 = QtGui.QVBoxLayout()
    buttonLayout1.addWidget(browseButton, QtCore.Qt.AlignTop)
    buttonLayout1.addWidget(self.out_put)
    buttonLayout1.addStretch()
    #界面的布局
    mainLayout = QtGui.QGridLayout()
    mainLayout.addWidget(nameLabel, 0, 0)
    mainLayout.addWidget(self.nameLine, 0, 1)
    mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop)
    #mainLayout.addWidget(self.addressText, 1, 1)
    mainLayout.addWidget(self.filesTable, 1, 1)
    mainLayout.addLayout(buttonLayout1, 1, 2)
    self.setLayout(mainLayout)
    self.setWindowTitle("HD_export")

得到的效果如图所示:

基于Python+QT的gui程序开发实现

然后就是定义button对应的方法。如Browse这个button对应的方法,代码如下:

def browse(self):
    directory = QtGui.QFileDialog.getExistingDirectory(self, "Find Files",
        QtCore.QDir.currentPath())
 
    self.nameLine.setText(directory)
    self.find()
    
  def find(self):
    self.filesTable.setRowCount(0)
    path=self.nameLine.text()
    self.currentDir = QtCore.QDir(path)
    files = self.currentDir.entryList(QtCore.QDir.Files | QtCore.QDir.NoSymLinks)
 
    self.showFiles(files)

这样当单击Browse这个按钮的时候,他就会调用browse这个方法了。

Ok,这样PyQT的用法就差不多说完了。然后就是如果编译这个.py文件,让他能够生成可用的.exe.

我在生成的时候,使用的是cx_Freeze,它的用法就一个命令FreezePython.exe,打包也很快捷:

cx_Freeze.bat  --install-dir="/your/path/to/install" app.py      

在安装的时候他会把cx_Freeze.bat放到\Python27\Scripts的文件夹中。

真正理解这个GUI开发,还是要自己去动手做。使用PyQT可以迅速的开发出自己想要的小工具,是一个不错的方法

到此这篇关于基于Python+QT的gui程序开发实现的文章就介绍到这了,更多相关Python QT gui程序开发内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用xlrd读取Excel格式文件的方法
Mar 10 Python
python处理图片之PIL模块简单使用方法
May 11 Python
Python中type的构造函数参数含义说明
Jun 21 Python
浅析Python中signal包的使用
Nov 13 Python
python+Django+apache的配置方法详解
Jun 01 Python
Python 多进程并发操作中进程池Pool的实例
Nov 01 Python
python 读写excel文件操作示例【附源码下载】
Jun 19 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
python实现在线翻译功能
Mar 03 Python
Python装饰器的应用场景代码总结
Apr 10 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
Python常用库Numpy进行矩阵运算详解
Jul 21 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 #Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
Jul 03 #Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 #Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 #Python
Python with语句用法原理详解
Jul 03 #Python
Keras搭建自编码器操作
Jul 03 #Python
python 识别登录验证码图片功能的实现代码(完整代码)
Jul 03 #Python
You might like
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php运行出现Call to undefined function curl_init()的解决方法
2010/11/02 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript实现的鼠标链接提示效果生成器代码
2007/06/28 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
详解JavaScript的BUG和错误
2018/05/07 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
解决python文件字符串转列表时遇到空行的问题
2017/07/09 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
俄罗斯达美乐比萨外送服务:Domino’s Pizza
2020/12/18 全球购物
通用C#笔试题附答案
2016/11/26 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
查摆问题整改措施
2014/10/24 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang