基于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实现的Kmeans++算法实例
Apr 26 Python
python字典get()方法用法分析
Apr 17 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
python+django快速实现文件上传
Oct 24 Python
神经网络python源码分享
Dec 15 Python
详解Python中的分组函数groupby和itertools)
Jul 11 Python
使用python实现画AR模型时序图
Nov 20 Python
Python %r和%s区别代码实例解析
Apr 03 Python
判断Threading.start新线程是否执行完毕的实例
May 02 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
python 模拟在天空中放风筝的示例代码
Apr 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
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
PHP 获取远程文件内容的函数代码
2010/03/24 PHP
php 文件缓存函数
2011/10/08 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
css3实现背景模糊的三种方式
2021/03/09 HTML / CSS
JS 判断undefined的实现代码
2009/11/26 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
2017/02/14 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
python实现电子词典
2020/03/03 Python
python中uuid模块实例浅析
2020/12/29 Python
python 多线程爬取壁纸网站的示例
2021/02/20 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
农救科工作职责
2013/11/27 职场文书
篮球社团活动总结
2014/06/27 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
老人院义工活动感想
2015/08/07 职场文书
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL