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

  • Post author:
  • Post category:其他



说明:这里我做个记录方便查阅,也为大家做个分享,希望大家多多支持。



注意:该教程以

Python程序打包 (Windows与Linux)

为基础。



一、 环境搭建



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

我们进入

PMPyQt

环境包中,安装

PyQt

相关模块

pip install PyQt5 pyqt5-tools



1.2 Pycharm安装及配置



1.2.1 Pycharm下载与安装

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

Pycharm

安装过程不赘述,这里记得有一个

别打勾

,别问我为什么:

在这里插入图片描述



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

打开软件,在

D盘

新建一个文件夹

PythonProjects

存放项目文件,新建一个

PMSoft_WorkRport

项目,进入

Previously configured interpreter

设置

D:\ProgramData\Miniconda3\python.exe

在这里插入图片描述

确定

Previously configured interpreter

后,再次进入

Previously configured interpreter

就能看到我们创建的

PMPyQt

环境包了:

在这里插入图片描述

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

在这里插入图片描述



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 :

在这里插入图片描述



1.2.4 Pycharm添加PyQt插件

为了方便软件的编写,我们设置几个插件到

Pycharm

当中,打开

pycharm

的这个位置:

File--Setting--Tools--External Tools

,点击加号进行添加插件:

在这里插入图片描述


添加



designer

(ui设计师)


位置



D:\ProgramData\Miniconda3\envs\PMPyQt\Lib\site-packages\qt5_applications\Qt\bin\designer.exe



工作目录



$FileDir$

在这里插入图片描述


添加



pyuic5

(ui文件转程序文件)


位置



D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyuic5.exe



参数



$FileName$ -o ui_$FileNameWithoutExtension$.py

(这里ui程序文件默认前面加上

ui_




工作目录



$FileDir$

在这里插入图片描述


添加



pyrcc5

(资源引用相关插件)


位置



D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyrcc5.exe



参数



$FileName$ -o $FileNameWithoutExtension$_rc.py

(这里rc资源文件默认后面加上

_rc




工作目录



$FileDir$

在这里插入图片描述


添加



pyinstaller

(打包插件)


位置



D:\ProgramData\Miniconda3\envs\PMPyQt\Scripts\pyinstaller.exe



参数



-F -w $FileName$



工作目录



$FileDir$

在这里插入图片描述



二、PyQt相关操作介绍



2.1 创建界面UI相关文件



2.1.1 创建.ui文件

首先打开我们刚刚添加的

designer

UI设计师插件,在

Tools--pyqt--designer

在这里插入图片描述

打开后我们选择不带按钮的窗口

Dialog without Buttons

,点击

创建

按钮:

在这里插入图片描述

这时可以看到我们创建出来的

Dialog

界面,我们鼠标拖一个

Push Button

按钮到窗口里:

在这里插入图片描述

拖进按钮之后我们鼠标左键单击点一下选中按钮,可以在右边属性编辑器里看到我们按钮的

objectName

属性为

pushButton

。这就是这个按钮对象的名字,这个名字也可以改(当然只能改英文),记住这个名字,后面我们会用到:

在这里插入图片描述
> 同理,鼠标点击我们创建的窗口空白处,选中我们的窗口对象,我们将窗口对象名称改成

Mainwindow

在这里插入图片描述

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

UI_Mainwindow.ui

在这里插入图片描述



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

界面文件是创建好了,但是它不是一个

.py

后缀的python文件,它是一个

.ui

后缀的文件。这时就需要用到我们添加的另一个插件:

pyuic5

,它可以将我们的

.ui

文件转换成

.py

文件,这样我们等会才可以使用我们刚刚创建的这个界面。

在这里插入图片描述

回到

pycharm

,我们将鼠标放在该

.ui

文件上按鼠标右键,然后在

pyqt

中点击

pyuic5

在这里插入图片描述

界面文件到此就完成了:

在这里插入图片描述



2.2 创建主界面类

界面我们是创建好了,但是这个

ui_UI_Mainwindow.py

文件只是一个界面文件,我们需要一个

界面类

作为载体,把他包含进来。

在这里插入图片描述

我们将鼠标放在工程名上右键,创建一个

UI_Mainwindow.py

类文件:

在这里插入图片描述


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_())

愣着干嘛,赶紧点击右上方的

三角运行符号

运行测试啊~!!

成功显示界面,激动不激动!!

在这里插入图片描述



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")

在这里插入图片描述

我们将信号与槽连起来,注意要指明你的按钮名,我的按钮名是:

pushButton


我们将连接信号与槽的代码写到

UI_Mainwindow

类的构造函数中,这样这个类实例化的时候就完成连接了。

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

在这里插入图片描述

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

在这里插入图片描述



2.5 打包我们的Demo

回到

pycharm

,我们将鼠标放在该

main.py

文件上按鼠标右键,然后在

pyqt

中点击

pyinstaller

:

在这里插入图片描述

在这里插入图片描述

稍等片刻,打包完成,打开

disk

中的可执行文件,运行成功!!!

大家已经完成整个软件制作的流程了,不知道有木有特别有成就感!!

在这里插入图片描述



版权声明:本文为weixin_44008698原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。