利用PyQt5以及Pyinstaller制作GUI小工具

  想要设计一个计算COSI的小工具,把之前写的Python制作GUI的教程综合一下(配置PyQt及设计GUIPyinstaller打包GUI),也记录一下整体的设计过程。

0 环境

  • 系统: win7
  • Python : 3.6.4
  • PyQT5 :用于创建GUI界面
    在这里插入图片描述
  • Pyinstall 3.4: 用于打包成CUI小程序
    在这里插入图片描述
  • 其他包,需根据个人算法进行下载、安装

1 构思

 基本设计如下,需要四个输入,一个输出:
在这里插入图片描述
 工具界面参照Arcmap10.2的设计元素:
在这里插入图片描述

2 绘制界面

  基本界面就是这样:
  利用PyQt设计完成后,保存为.ui文件。随后,利用配置好的工作pyuic转为.py文件。
在这里插入图片描述

3 建立槽函数

 在这里,我们假定由.ui界面转换为py文件的为window.py需要调用的算法文件为algo.py主函数文件为main.py

主要分三步:

  1. window.py中建立信号;
  2. main.py中根据信号建立槽函数;
  3. 将写好的alo.py代码,放入执行键的槽函数中。

一些细节如下:

  •  我们编制好的界面有五个按钮,需要分别设置不同的功能,这就需要我们在windows.py中建立信号。
#  在window.py里,写槽
self.pushButton.clicked.connect(MainWindow.p1_ck)
self.pushButton_2.clicked.connect(MainWindow.p2_ck)
self.pushButton_3.clicked.connect(MainWindow.p3_ck)
self.pushButton_4.clicked.connect(MainWindow.p4_ck)
self.pushButton_5.clicked.connect(MainWindow.p5_ck)
self.pushButton_6.clicked.connect(MainWindow.p6_ck)
  •  在main.py里,将对应信号(点击动作),写成槽函数。最终要的是,将“确定”、“执行”那个键,写的丰富一点,把判错函数多写一些。防止使用者出现频繁报错。
import windows_1
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QFileDialog
# 常用的几个应用
aspect_path = QFileDialog.getOpenFileName(caption="Open Aspect file-path: ", directory='./',
                                                  filter='Tif File(*.tif);;All Files(*)')  # 浏览获取输入位置
self.lineEdit.setText(aspect_path[0])  # 设立线编辑内容
self.cosi_path = QFileDialog.getSaveFileName(caption='Save COSI file-path', directory='./',
                                                     filter='Tif File(*.tif)')  # 浏览获取输出位置
aspect_path = self.lineEdit.text()  # 获取线编辑内容
self.textEdit.append('\n  输入的太阳方位角为:' + sun_azimuth)  # 文本框内容增加
self.textEdit.clear()  # 清除文本框内容

 以上是添加文本框内容和获取文本框内容,具体高级应用,应详见PyQt5中QtWidget中的类函数.

  • 执行测试:
    在这里插入图片描述

3 打包

  pyinstaller工具使用起来很方便,相关操作如下:
在这里插入图片描述
实际操作如下:

在这里插入图片描述

完成。

细节如配置PyQt5环境与安装pyinstaller,请详见:

 (配置PyQt及设计GUIPyinstaller打包GUI

-------------------------20190312更新--------------------------------
注: 尽量把所有的算法,都放在main.py同一个文件夹下进行打包,不要使用-p,经实测,使用-p查找所使用的包,会增多打包的时间,并且软件的大小会变大,软件启动的效率会变慢。

# 把软件打包成一个小程序,不加-F就默认打包成一个文件夹 pyinstaller main.py -F -i tb.icon

猜你喜欢

转载自blog.csdn.net/qq_40260867/article/details/88430889
今日推荐