基于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排序搜索基本算法之堆排序实例详解
Dec 08 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
python 调用钉钉机器人的方法
Feb 20 Python
Python实现基于SVM的分类器的方法
Jul 19 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
python实现计算器功能
Oct 31 Python
python实现布隆过滤器及原理解析
Dec 08 Python
python序列类型种类详解
Feb 26 Python
Python实现一个简单的毕业生信息管理系统的示例代码
Jun 08 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 Python
python字符串的一些常见实用操作
Apr 06 Python
python中 .npy文件的读写操作实例
Apr 14 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有道翻译api调用方法实例
2014/12/22 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
基于jQuery的左右滚动实现代码
2010/12/03 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
django 取消csrf限制的实例
2020/03/13 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
详解Python直接赋值,深拷贝和浅拷贝
2020/07/09 Python
Python异常处理机制结构实例解析
2020/07/23 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
详解css3自定义滚动条样式写法
2017/12/25 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
带病坚持工作事迹
2014/05/03 职场文书
大学自主招生推荐信
2014/05/10 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
清洁工个人工作总结
2015/03/05 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫