基于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的循环体中使用else语句的方法
Mar 30 Python
Python实现将xml导入至excel
Nov 20 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python编程之序列操作实例详解
Jul 22 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python实现广度优先搜索过程解析
Oct 19 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
python中文分词库jieba使用方法详解
Feb 11 Python
Python使用进程Process模块管理资源
Mar 05 Python
python实现与redis交互操作详解
Apr 21 Python
基于python的opencv图像处理实现对斑马线的检测示例
Nov 29 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
社区(php&&mysql)五
2006/10/09 PHP
php实现webservice实例
2014/11/06 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
jquery radio 操作代码
2011/03/16 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
nodejs中操作mysql数据库示例
2014/12/20 NodeJs
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
js 上传文件预览的简单实例
2016/08/16 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
如何高效使用Python字典的方法详解
2017/08/31 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
泰国在线书店:SE-ED
2020/06/21 全球购物
银行个人求职自荐信范文
2013/12/16 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
高中军训感言500字
2014/02/24 职场文书
选秀节目策划方案
2014/06/06 职场文书
天地会口号
2014/06/17 职场文书
新闻通讯稿模板
2015/07/22 职场文书
【海涛dota解说】DCG联赛第一周 LGD VS DH
2022/04/01 DOTA
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server