基于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中logging模块的用法实例
Sep 29 Python
在Python中使用pngquant压缩png图片的教程
Apr 09 Python
Python实现通过文件路径获取文件hash值的方法
Apr 29 Python
python用pandas数据加载、存储与文件格式的实例
Dec 07 Python
Python 根据日志级别打印不同颜色的日志的方法示例
Aug 08 Python
python argparser的具体使用
Nov 10 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
django日志默认打印request请求信息的方法示例
May 17 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python logging自定义字段输出及打印颜色
Nov 30 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
Python中文分词库jieba(结巴分词)详细使用介绍
Apr 07 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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
PHP+JS实现大规模数据提交的方法
2015/07/02 PHP
教你在PHPStorm中配置Xdebug
2015/07/27 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
CodeIgniter配置之routes.php用法实例分析
2016/01/19 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
Javascript学习笔记二 之 变量
2010/12/15 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
js函数名与form表单元素同名冲突的问题
2014/03/07 Javascript
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
Python可变参数用法实例分析
2017/04/02 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
python实现代码统计器
2019/09/19 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Ryderwear美国官网:澳大利亚高端健身训练装备品牌
2018/04/24 全球购物
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
2014中学教师节广播稿
2014/09/10 职场文书
2015年会计年终工作总结
2015/05/26 职场文书
公司催款律师函
2015/05/27 职场文书
车辆管理制度范本
2015/08/05 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python