栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

打开软件,在D盘新建一个文件夹PythonProjects存放项目文件,新建一个PMSoft_WorkRport项目,进入Previously configured interpreter设置D:ProgramDataMiniconda3python.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:ProgramDataMiniconda3envsPMPyQtLibsite-packagesqt5_applicationsQtbindesigner.exe
工作目录:$FileDir$

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

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

添加:pyinstaller(打包插件)
位置:D:ProgramDataMiniconda3envsPMPyQtScriptspyinstaller.exe
参数:-F -w $FileName$
工作目录:$FileDir$

二、PyQt相关操作介绍 2.1 创建界面UI相关文件 2.1.1 创建.ui文件

首先打开我们刚刚添加的designerUI设计师插件,在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中的可执行文件,运行成功!!!
大家已经完成整个软件制作的流程了,不知道有木有特别有成就感!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号