基于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 with的用法
Aug 22 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
基于python生成器封装的协程类
Mar 20 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
Django处理多用户类型的方法介绍
May 18 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
详解python logging日志传输
Jul 01 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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之字符串变相相减的代码
2007/03/19 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php调整服务器时间的方法
2015/04/03 PHP
thinkphp配置文件路径的实现方法
2016/08/30 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
python实现红包裂变算法
2016/02/16 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
python自动化报告的输出用例详解
2018/05/30 Python
对pandas中Series的map函数详解
2018/07/25 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
Python中的异常处理try/except/finally/raise用法分析
2019/02/28 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
学校联谊活动方案
2014/02/15 职场文书
质量整改通知单
2015/04/21 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Redis性能监控的实现
2021/07/09 Redis
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
MySQL transaction事务安全示例讲解
2022/06/21 MySQL