基于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的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
Python正则抓取网易新闻的方法示例
Apr 21 Python
python3 实现验证码图片切割的方法
Dec 07 Python
python实现自动获取IP并发送到邮箱
Dec 26 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 Python
Python内置加密模块用法解析
Nov 25 Python
Python面向对象原理与基础语法详解
Jan 02 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
Python datetime 格式化 明天,昨天实例
Mar 02 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
Jul 20 Python
什么是Python包的循环导入
Sep 08 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
微信小程序实现拍照画布指定区域生成图片
2019/07/18 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
numpy 计算两个数组重复程度的方法
2018/11/07 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
关于多元线性回归分析——Python&SPSS
2020/02/24 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Python爬虫与反爬虫大战
2020/07/30 Python
如何利用python进行时间序列分析
2020/08/04 Python
日本高岛屋百货购物网站:TAKASHIMAYA
2019/03/24 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
土建资料员岗位职责
2014/01/04 职场文书
实训报告范文大全
2014/11/04 职场文书
早恋主题班会
2015/08/14 职场文书
2016年少先队活动总结
2016/04/06 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python