基于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开发微信公众平台的方法详解【基于weixin-knife】
Jul 08 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
python3实现弹弹球小游戏
Nov 25 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
如何基于线程池提升request模块效率
Apr 18 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
Aug 02 Python
python的数学算法函数及公式用法
Nov 18 Python
Opencv+Python识别PCB板图片的步骤
Jan 07 Python
matplotlib事件处理基础(事件绑定、事件属性)
Feb 03 Python
教你用python实现12306余票查询
Jun 30 Python
python双向链表实例详解
May 25 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递归删除目录几个代码实例
2014/04/21 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
Laravel实现短信注册的示例代码
2018/05/29 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
js charAt的使用示例
2014/02/18 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
2015/01/05 Javascript
基于BootStrap Metronic开发框架经验小结【四】Bootstrap图标的提取和利用
2016/05/12 Javascript
微信小程序之仿微信漂流瓶实例
2016/12/09 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
在Vue组件中获取全局的点击事件方法
2018/09/06 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
深入理解NumPy简明教程---数组1
2016/12/17 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
python如何实现代码检查
2019/06/28 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
美国生鲜及杂货电商:FreshDirect
2018/01/29 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
3分钟演讲稿
2014/04/30 职场文书
运动会方队口号
2014/06/07 职场文书
学用政策心得体会
2014/09/10 职场文书
教师自荐信范文
2015/03/06 职场文书
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
MySQL 1130异常,无法远程登录解决方案详解
2021/08/23 MySQL
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL