基于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访问纯真IP数据库脚本分享
Jun 29 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
Python中防止sql注入的方法详解
Feb 25 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
redis之django-redis的简单缓存使用
Jun 07 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
python 遍历列表提取下标和值的实例
Dec 25 Python
Python中类的创建和实例化操作示例
Feb 27 Python
Python3.5 Pandas模块之DataFrame用法实例分析
Apr 23 Python
python使用yield压平嵌套字典的超简单方法
Nov 02 Python
关于Python-faker的函数效果一览
Nov 28 Python
python super用法及原理详解
Jan 20 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关联数组的10个操作技巧
2013/01/21 PHP
php unset全局变量运用问题的深入解析
2013/06/17 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
2021/03/09 PHP
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
javascript实现Table排序的方法
2015/05/15 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
js钢琴按钮波浪式图片排列效果代码分享
2015/08/26 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
js中获取键盘事件的简单实现方法
2016/10/10 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
2016/10/15 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
vue大型项目之分模块运行/打包的实现
2020/09/21 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
Python lxml模块安装教程
2015/06/02 Python
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
python3人脸识别的两种方法
2019/04/25 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
python manage.py runserver流程解析
2019/11/08 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
浅谈python出错时traceback的解读
2020/07/15 Python
英国假发网站:Hothair
2018/02/23 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
网站设计师的岗位职责
2013/11/21 职场文书
努力学习演讲稿
2014/05/10 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python