基于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获取标准北京时间的方法
Mar 24 Python
jupyter安装小结
Mar 13 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
用python实现英文字母和相应序数转换的方法
Sep 18 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
php 猴子摘桃的算法
2017/06/20 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
2017/03/14 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
Node层模拟实现multipart表单的文件上传示例
2018/01/02 Javascript
详解React中setState回调函数
2018/06/14 Javascript
linux下安装easy_install的方法
2013/02/10 Python
Python中利用sorted()函数排序的简单教程
2015/04/27 Python
python实现实时视频流播放代码实例
2020/01/11 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
奶茶店创业计划书范文
2014/01/17 职场文书
幼儿园教师节活动方案
2014/02/02 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
村创先争优活动总结
2014/08/28 职场文书
学习十八大演讲稿
2014/09/15 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
租车协议书
2015/01/27 职场文书
综合办公室岗位职责
2015/04/11 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书