1:安装需要的第三方库(pyqt5,pyqt5-tools)
如果读者使用的anaconda,在安装完上述两个包之后会出现spyder打开不了的情况,本博客是基于纯python3(重装 的,自己的spyder也打不开了,还没整好)制作的GUI以及打包exe。
2:首先使用qt-designer,制作GUI界。
2.1新建 main window界面。在D:\py3\Lib\site-packages\PyQt5\Qt\bin下打开qt designer

制作以下界面(主要功能包括打开图片,保存,放大,缩小)

保存test.ui文件,在CMD中利用

转换成py文件
3:编写数据处理主要代码(data_process.py)

import gdal
import os
import numpy
import matplotlib.pyplot as plt
from PIL import Image,ImageGrab
import matplotlibmatplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']='SimHei'class imageedit_process:def read_img(path):img= Image.open(path)#plt.subplot(111),plt.imshow(img,'gray'),plt.title('origin_img')#print(img)#plt.show()return imgdef zoomin(path):#放大img = Image.open(path) # 读取的图像显示的<matplotlib.image.AxesImage object at 0x7f9f0c60f7f0>region = img.transpose(Image.ROTATE_180) #翻转(x, y) = img.sizeout = img.resize((x+1000, y+1000)) # 改变大小plt.subplot(121),plt.imshow(img,'gray'),plt.title('原始影像')plt.subplot(122),plt.imshow(out,'gray'),plt.title('放大影像')plt.show()def zoomout(path):#缩小img = Image.open(path) # 读取的图像显示的<matplotlib.image.AxesImage object at 0x7f9f0c60f7f0>(x, y) = img.sizeout = img.resize((x-200, y-200)) # 改变大小plt.subplot(121),plt.imshow(img,'gray'),plt.title('原始图像')plt.subplot(122),plt.imshow(out,'gray'),plt.title('缩小影像')plt.show()

4,运行代码(run_demo.py)

from PyQt5 import QtWidgets
from test2 import Ui_MainWindow
#from PyQt5.QtWidgets import QFileDialog
from data_process import imageedit_process
#from bottombutton import button_self
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class mywindow(QtWidgets.QMainWindow, Ui_MainWindow):def  __init__ (self):super(mywindow, self).__init__()self.setupUi(self)self.actionopen.triggered.connect(self.read_file)#打开self.actionsave.triggered.connect(self.save_file)#保存self.actionzoom_in.triggered.connect(self.zoom_in)self.actionzoom_out.triggered.connect(self.zoom_out)def read_file(self):#选取文件filename, filetype =QFileDialog.getOpenFileName(self, "open file", "D:/imagetest", "All Files(*);;Text Files(*.png)")print(filename, filetype)self.lineEdit.setText(filename)self.pic_show.setPixmap(QPixmap(filename))#img=self.read_img(filename)def save_file(self):#获取文件路径# 用全局变量保存所有需要保存的变量在内存中的值。file_name = QFileDialog.getSaveFileName(self,"文件保存","D:/imagetest/save","All Files (*);;Text Files (*.png)")print(file_name[0])btn=button_self()btn.file_save(file_path,file_name[0])#imageedit_process.read_img(filename)def zoom_in(self):file_path = self.lineEdit.text()if file_path=='':self.showMessageBox()else:imageedit_process.zoomin(file_path)def zoom_out(self):file_path = self.lineEdit.text()if file_path=='':self.showMessageBox()else:imageedit_process.zoomout(file_path)def showMessageBox(self):res_3 = QMessageBox.warning(self, "警告", "请选择文件,再执行该操作!", QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)if __name__=="__main__":import sysapp=QtWidgets.QApplication(sys.argv)ui = mywindow()    ui.show()sys.exit(app.exec_())

效果图如下:

5;使用pyinstaller打包成exe文件

#!/usr/bin/env python3
# -\- coding: utf-8 -\-
from PyInstaller.__main__ import run
import os
# -F:打包成一个EXE文件
# -w:不带console输出控制台,window窗体格式
# --paths:依赖包路径
# --icon:图标
# --noupx:不用upx压缩
# --clean:清理掉临时文件if __name__ == '__main__':opts = ['-F', '-w', '--paths=D:\py3\Lib\site-packages\PyQt5\Qt\bin','--paths=D:\py3\Lib\site-packages\PyQt5\Qt\plugins','--noupx', '--clean',r'F:\s2_download\qt5manager-master\test2\run_demo.py']run(opts)

其中run_demo.py是运行的文件新生成一个dist文件夹,生成一个exe文件。

详细代码及界面设置详见https://download.csdn.net/download/qq_33657870/12324201**(不要积分)**
test2.ui为qt designer中设计的界面
test2.py为ui转成的py文件
data_process为数据处理的代码(现在和界面无关)
run_demo为运行的代码将数据处理功能和界面关联
py2exe为代码打包成exe文件

使用Pyqt5制作GUI界面,并使用pyinstaller打包成exe文件相关推荐

  1. 用tkinter写出you-get下载器界面,并用pyinstaller打包成exe文件

    写在前面:本文为笔者最早于 2019-05-11 23:15 以"@拼命三郎"的身份发表于博客园 本文为原创文章,转载请标明出处 一.you-get介绍 you-get是一个基于 ...

  2. Python制作小软件——4. 利用PyInstaller打包成exe文件

    在前面:Python制作小软件--3. 利用PyQt5实现界面中的功能,介绍完了Python中如何呼唤出我们的界面后 最后最重要的就是将我们做好的东西,全部打包成一个.exe可执行文件.这里我们使用的 ...

  3. python 打包 小文件_[Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件

    1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...

  4. python打包成exe_【Python】使用pyinstaller打包成exe文件时可以显示图片的方法

    本文作者:小赖同学 最近我在学习Python GUI的使用时,尝试在一个组件上使用了背景图片,然而,直接Run时这个背景图片是可以显示出来,可当使用pyinstaller打包成exe时却没有打包进去显 ...

  5. python:使用PyInstaller打包成exe文件,以及TypeError: an integer is required (got type bytes)异常解决

    本文主要介绍安装pyinstaller教程与pyinstaller打包出现 TypeError: an integer is required (got type bytes)异常问题解决办法: 1. ...

  6. Python使用pyinstaller打包成exe文件,并支持传入外部参(已解决打包后文件大的情况)

    目录 一.为什么要打包 二.打包后文件大的问题 三.外部传参 3.1.sys库 3.2.argparse库 四.pyinstaller打包 4.1.安装包 4.2.打包命令 4.3.新环境打包 五.运 ...

  7. Python文件用pyinstaller打包成.exe文件后如何获取Python源码(Python文件反编译)

    此文章自己做个学习记录,也希望对跟我有一样困扰的同学一些帮助! 使用到的工具下载链接我都已经附上,点击下面蓝色字体可直接下载: 1.pyinstxtractor.py 2.wxMEDIT 3.在线编译 ...

  8. python文件图标变成小电脑_手把手教你给Python程序写图形界面,并且打包成exe文件-exe文件...

    环境配置 官网下载Python3,LZ的配置环境是Python3.6,PyCharm 2017.2.1pip3 install PyQt5 #下载PyQt5 pip install PyQt5-too ...

  9. Pyinstaller打包的exe文件过大的解决方法

    Pyinstaller打包的exe文件过大怎么办? 相信经常用python的朋友都会面临这么一个问题,那就是想把自己写好的python程序打包给别人使用.有的人就会问了"打包"是什 ...

最新文章

  1. 为什么分布式一定要有redis?
  2. ASP.NET MVC Model元数据(五)
  3. linux GUI程序开发
  4. php 订单过期处理,PHP实现处理过期或者超时订单,并还原库存
  5. oracle函数分为几个大类,ORACLE常见分析函数有哪几类呢?
  6. cisco6509 2811 配置备份
  7. 初步学习pg_control文件之十四
  8. Navicat连接Mysql报错:Client does not support authentication protocol requested by server;
  9. Windows自动关机设置
  10. input的onchange,onpropertychange,oninput事件 区别 及兼容各个浏览器使用方法
  11. 【游戏开发实战】教你使用Unity实现录屏生成GIF的功能,录个妹子跳舞的GIF吧
  12. 数据挖掘学习--主成分分析
  13. Unity IOS 录屏
  14. rfc959 FTP传输协议
  15. 什么是IDC?IDC基础知识
  16. 山财计算机考试科目,山东财经大学考研——22考研儿注意了,这几所高校发布了初试科目变更通知...
  17. html 禁止页面回弹,JavaScript禁止微信浏览器下拉回弹效果
  18. 【汇编综合应用】大小写字母的转换、2号、9号和10号DOS系统功能调用、分支、循环程序结构、子程序、寄存器传递参数,宏定义、宏调用,观察宏展开。
  19. 华容道游戏破解java版
  20. springboot日志输出格式

热门文章

  1. 用户画像基础之数据架构
  2. 不应将商业行为政治化!
  3. cad转dxf格式文件太大,将CAD图纸文件进行转换成低版本DXF格式如何进行?
  4. 电脑+浏览器——黑色护眼
  5. SQLServer 时间段分隔,时间段查询,查询时间段内的数据
  6. 【智能工厂】PPT案例分享:智慧工厂解决方案
  7. jieba.cut 和jieba.posseg
  8. 计算机网络——物理层和信道复用(频分、时分、码分)技术
  9. 【无标题】input开始输入文字,到输入结束触发事件
  10. 【转载】讲真,认知几乎是人和人之间唯一的本质差别。