基于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实现简单ftp客户端的方法
Jun 28 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
python读写json文件的简单实现
Apr 11 Python
python:接口间数据传递与调用方法
Dec 17 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
Python任意字符串转16, 32, 64进制的方法
Jun 12 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
python实现可下载音乐的音乐播放器
Feb 25 Python
python 5个顶级异步框架推荐
Sep 09 Python
requests在python中发送请求的实例讲解
Feb 17 Python
如何在Python项目中引入日志
May 31 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
JS获取整个页面文档的实现代码
2011/12/15 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
2020/04/15 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
python定时截屏实现
2020/11/02 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
美国折扣网站:jClub
2017/08/07 全球购物
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
先进班集体事迹材料
2014/12/25 职场文书
化工生产实习心得体会
2016/01/22 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
Python实现Hash算法
2022/03/18 Python