Windows下PyQt编写简单软件并打包

文章目录

  • 一、 环境搭建
    • 1.1 Miniconda环境包添加PyQt相关模块
    • 1.2 Pycharm安装及配置
      • 1.2.1 Pycharm下载与安装
      • 1.2.2 Pycharm新建项目并设置使用Miniconda环境
      • 1.2.3 Pycharm设置新建py文件自动添加注释头
      • 1.2.4 Pycharm添加PyQt插件
  • 二、PyQt相关操作介绍
    • 2.1 创建界面UI相关文件
      • 2.1.1 创建.ui文件
      • 2.1.2 转换.ui文件为.py界面文件
    • 2.2 创建主界面类
    • 2.3 修改main文件并运行
    • 2.4 利用信号与槽实现弹窗
    • 2.5 打包我们的Demo

说明:这里我做个记录方便查阅,也为大家做个分享,希望大家多多支持。
注意:该教程以 Python程序打包 (Windows与Linux) 为基础。

一、 环境搭建

1.1 Miniconda环境包添加PyQt相关模块

我们进入PMPyQt环境包中,安装PyQt相关模块

pip install PyQt5 pyqt5-tools

1.2 Pycharm安装及配置

1.2.1 Pycharm下载与安装

这里我安装的Community版,官网下载地址:Pycharm

安装过程不赘述,这里记得有一个别打勾,别问我为什么:

Windows下PyQt编写简单软件并打包_第1张图片

1.2.2 Pycharm新建项目并设置使用Miniconda环境

打开软件,在D盘新建一个文件夹PythonProjects存放项目文件,新建一个PMSoft_WorkRport项目,进入Previously configured interpreter设置D:\ProgramData\Miniconda3\python.exe

Windows下PyQt编写简单软件并打包_第2张图片

确定Previously configured interpreter后,再次进入Previously configured interpreter就能看到我们创建的PMPyQt环境包了:

Windows下PyQt编写简单软件并打包_第3张图片

我们将我们上一次的测试代码添加进去测试,成功运行:

Windows下PyQt编写简单软件并打包_第4张图片

1.2.3 Pycharm设置新建py文件自动添加注释头

File--Setting--Edit--File and Code Templates中找到Python Script项,复制以下内容到此(别忘了修改Author作者名称为你自己!!):

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# @Time : ${DATE} ${TIME} 
# @Author : PoetMilk 
# @Version:V 1.0
# @File : ${NAME}.py
# @desc :

Windows下PyQt编写简单软件并打包_第5张图片

1.2.4 Pycharm添加PyQt插件

为了方便软件的编写,我们设置几个插件到Pycharm当中,打开pycharm的这个位置:File--Setting--Tools--External Tools,点击加号进行添加插件:

Windows下PyQt编写简单软件并打包_第6张图片

添加designer(ui设计师)
位置D:\ProgramData\Miniconda3\envs\PMPyQt\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
工作目录$FileDir$

Windows下PyQt编写简单软件并打包_第7张图片

添加pyuic5(ui文件转程序文件)
位置D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyuic5.exe
参数$FileName$ -o ui_$FileNameWithoutExtension$.py(这里ui程序文件默认前面加上ui_
工作目录$FileDir$

Windows下PyQt编写简单软件并打包_第8张图片

添加pyrcc5(资源引用相关插件)
位置D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyrcc5.exe
参数$FileName$ -o $FileNameWithoutExtension$_rc.py(这里rc资源文件默认后面加上_rc
工作目录$FileDir$

Windows下PyQt编写简单软件并打包_第9张图片

添加pyinstaller(打包插件)
位置D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyinstaller.exe
参数-F -w $FileName$
工作目录$FileDir$

Windows下PyQt编写简单软件并打包_第10张图片

二、PyQt相关操作介绍

2.1 创建界面UI相关文件

2.1.1 创建.ui文件

首先打开我们刚刚添加的designerUI设计师插件,在Tools--pyqt--designer

Windows下PyQt编写简单软件并打包_第11张图片

打开后我们选择不带按钮的窗口Dialog without Buttons,点击创建按钮:

Windows下PyQt编写简单软件并打包_第12张图片

这时可以看到我们创建出来的Dialog界面,我们鼠标拖一个Push Button按钮到窗口里:

Windows下PyQt编写简单软件并打包_第13张图片

拖进按钮之后我们鼠标左键单击点一下选中按钮,可以在右边属性编辑器里看到我们按钮的objectName属性为pushButton。这就是这个按钮对象的名字,这个名字也可以改(当然只能改英文),记住这个名字,后面我们会用到:

Windows下PyQt编写简单软件并打包_第14张图片> 同理,鼠标点击我们创建的窗口空白处,选中我们的窗口对象,我们将窗口对象名称改成Mainwindow

Windows下PyQt编写简单软件并打包_第15张图片

点击左上角的保存,因为是UI,并且是主界面,我们名称设为:UI_Mainwindow.ui

Windows下PyQt编写简单软件并打包_第16张图片

2.1.2 转换.ui文件为.py界面文件

界面文件是创建好了,但是它不是一个.py后缀的python文件,它是一个.ui后缀的文件。这时就需要用到我们添加的另一个插件:pyuic5,它可以将我们的.ui文件转换成.py文件,这样我们等会才可以使用我们刚刚创建的这个界面。

Windows下PyQt编写简单软件并打包_第17张图片

回到pycharm,我们将鼠标放在该.ui文件上按鼠标右键,然后在pyqt中点击pyuic5

Windows下PyQt编写简单软件并打包_第18张图片

界面文件到此就完成了:

Windows下PyQt编写简单软件并打包_第19张图片

2.2 创建主界面类

界面我们是创建好了,但是这个ui_UI_Mainwindow.py文件只是一个界面文件,我们需要一个界面类作为载体,把他包含进来。

Windows下PyQt编写简单软件并打包_第20张图片

我们将鼠标放在工程名上右键,创建一个UI_Mainwindow.py类文件:

Windows下PyQt编写简单软件并打包_第21张图片

UI_Mainwindow类的代码如下,懂python类的同学应该都能看得懂,这里把我们之前创建的界面文件ui_UI_Mainwindow引入到主界面类UI_Mainwindow中去了:

from PyQt5.QtWidgets import QDialog
from ui_UI_Mainwindow import Ui_Mainwindow


class UI_Mainwindow(QDialog, Ui_Mainwindow):

    def __init__(self, parent=None):
        super().__init__()
        self.setupUi(self)

2.3 修改main文件并运行

我们将之前创建的main.py文件中的内容进行修改,这里我们将我们创建的UI_Mainwindow类实例化,并且利用QApplication让我们的界面显示出来:

from sys import exit, argv
from PyQt5.QtWidgets import QApplication
from UI_Mainwindow import UI_Mainwindow

if __name__ == '__main__':
    app = QApplication(argv)
    ui_main_window = UI_Mainwindow()
    ui_main_window.show()
    exit(app.exec_())

愣着干嘛,赶紧点击右上方的三角运行符号运行测试啊~!!
成功显示界面,激动不激动!!

Windows下PyQt编写简单软件并打包_第22张图片

2.4 利用信号与槽实现弹窗

界面是显示了,但是你会发现点击按钮是没有任何作用的。
我们现在要实现:点击按钮,弹出一个消息框的功能。
弹窗其实就是一个调用了一个弹窗函数

# 需引入模块
from PyQt5.QtWidgets import QMessageBox

# 弹窗函数
QMessageBox.information(self, "标题", "我很喜欢学习python")

让我们来梳理一下:点击按钮 --> 触发弹窗。但是怎么实现这整个流程呢?
这就需要用到我们Qt中的机制:信号与槽。

  1. 简单来说就是刚刚你拖进来的那个按钮,它有一个信号叫clicked,这个信号会在你点击按钮的时候触发。
  2. 我们将它与槽函数(槽函数是一个特殊的函数,用于信号触发的时候执行)相连接。
  3. 然后我们把弹窗的函数写到槽函数内,这样我们点击按钮的时候就会弹窗了。
    说干就干,我们添加一个槽函数到UI_Mainwindow类中(因为弹窗是点击UI_Mainwindow类里的按钮触发的显示在UI_Mainwindow类窗口中的弹窗),函数名我是以Slot_开头的用于说明它是槽函数:
# 需引入模块
from PyQt5.QtWidgets import QMessageBox

	# 按钮槽函数
	def Slot_BtnClicked(self):
		# 弹窗函数
		QMessageBox.information(self, "标题", "我很喜欢学习python")

Windows下PyQt编写简单软件并打包_第23张图片

我们将信号与槽连起来,注意要指明你的按钮名,我的按钮名是:pushButton
我们将连接信号与槽的代码写到UI_Mainwindow类的构造函数中,这样这个类实例化的时候就完成连接了。

# 连接信号与槽
self.pushButton.clicked.connect(self.Slot_BtnClicked)

Windows下PyQt编写简单软件并打包_第24张图片

OK!我们点击运行开始测试,点击按钮成功弹窗!!!

Windows下PyQt编写简单软件并打包_第25张图片

2.5 打包我们的Demo

回到pycharm,我们将鼠标放在该main.py文件上按鼠标右键,然后在pyqt中点击pyinstaller:

Windows下PyQt编写简单软件并打包_第26张图片

Windows下PyQt编写简单软件并打包_第27张图片

稍等片刻,打包完成,打开disk中的可执行文件,运行成功!!!
大家已经完成整个软件制作的流程了,不知道有木有特别有成就感!!

Windows下PyQt编写简单软件并打包_第28张图片

你可能感兴趣的:(笔记,python,pycharm,python,ide,qt)