文章目录
说明:这里我做个记录方便查阅,也为大家做个分享,希望大家多多支持。
注意:该教程以
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中的机制:信号与槽。
- 简单来说就是刚刚你拖进来的那个按钮,它有一个信号叫
clicked
,这个信号会在你点击按钮的时候触发。- 我们将它与槽函数(槽函数是一个特殊的函数,用于信号触发的时候执行)相连接。
- 然后我们把弹窗的函数写到槽函数内,这样我们点击按钮的时候就会弹窗了。
说干就干,我们添加一个槽函数到
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
中的可执行文件,运行成功!!!
大家已经完成整个软件制作的流程了,不知道有木有特别有成就感!!