基于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 调用VC++的动态链接库(DLL)
Sep 06 Python
python实现的一个火车票转让信息采集器
Jul 09 Python
深入理解Python 代码优化详解
Oct 27 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
Python 中字符串拼接的多种方法
Jul 30 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
Django REST 异常处理详解
Jul 15 Python
Python实现一个论文下载器的过程
Jan 18 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
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
php探针不显示内存解决方法
2019/09/17 PHP
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
javascript 循环调用示例介绍
2013/11/20 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
Python常用字符串替换函数strip、replace及sub用法示例
2018/05/21 Python
Selenium定位元素操作示例
2018/08/10 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
python xpath获取页面注释的方法
2019/01/14 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
酒店个人求职信范文
2014/01/25 职场文书
初中班级口号
2014/06/09 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
检讨书怎么写
2015/01/23 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
2015年教师节感言
2015/08/03 职场文书