PyQt学习记录01——加法计算器

0. 安装配置

0.1 安装相关库

首先打开你的PyCharm程序,然后新建一个目录用于学习,其次在terminal中输入

bash 复制代码
pip install pyqt5

如果你不具有科学上网能力,请改为国内源

bash 复制代码
pip install pyqt5 -i https://pypi.douban.com/simple

然后安装pyqt相关工具

bash 复制代码
pip install pyqt5-tools

0.2 配置qtdesigner

在文件------》设置------》工具------》外部工具中进行配置(默认外部工具是没有的,这是编辑完成的,我这里是因为编辑过了)

点击+号图标,在弹出的界面中按照如下进行配置,其中Program栏填写的地址需要你事先查找PC找到,复制进来,然后打开指定路径,找到下面的designer.exe,最后输入工作地址 点击确认即可。

在你的项目文件夹上点击右键,找到External Tools------》qtdesigner

最后出现QT设计界面说明配置完成

0.3 配置pyuic

这个外部工具的主要目的是将Qt设计师的ui界面转译为py文件,配置方法有0.2相同。

找到\Scripts\pyuic5.exe并确定

需要注意的是工作地址最好和qtdesigner所配置的地址一致

其中Arguments填写

bash 复制代码
$FileName$ -o $FileNameWithoutExtension$.py -x

最后,首先使用qt设计师(ui界面创建一个窗口,并保存),这样会在你的文件路径下显示为xxx.ui文件

接着对这个文件右键,选择External Tools------》pyuic,查看其是否能生成xxx.py文件

其中xxx.py文件就是转译的ui所包含的控件等文件,此时点击运行xxx.py就可以弹出你所编辑的ui界面

1. 开发流程

相信聪明的你已经注意到了,pyqt的开发流程与原生QT开发流程是略有区别的,最大的区别莫过于使用pyuic转译的流程,这就使得你无法像原生QT开发那样,可以快速在UI界面和代码界面中进行切换,而是需要转译。

这样导致的问题就是你不能在xxx.ui转译的xxx.py文件中创建事件和代码,因为只要ui改动并转译了,就会导致你的代码被全部覆盖,所以我们需要新建一个py文件,来调用xxx.py中的元素。

所以开发流程就是:
新建一个xxx.ui文件------》编辑xxx.ui------》保存------》通过pyuic转译xxx.ui文件------》获得xxx.py------》新建run_xxx.py文件构建你的代码用以调用xxx.py中的元素------》调试/运行run_xxx.py文件

首先、新建一个ui界面,这里的红框是因为采用了QT设计师右键菜单的布局功能

然后将保存的xxx.ui文件转译为xxx.py文件(这里需要注意pyuic配置时的路径需要与你当前的ui文件一致,不然可能找不到)

而后,在当前文件目录下新建,并且可命名为run_xxx.py,输入以下代码,

python 复制代码
import sys
from PyQt5 import QtWidgets
from xxx import Ui_MainWindow  # 导入 xxx.py 里的 UI 类

class MainApp(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = Ui_MainWindow()  # 创建 UI 实例
        self.ui.setupUi(self)  # 设置 UI
        self.ui.pushButton.clicked.connect(self.on_button_click)  # 绑定按钮事件
    def on_button_click(self):
        """ 按钮1点击事件 """
        try:
            # 获取用户输入
            line1 = int(self.ui.lineEdit.text())  # 获取第一个编辑栏数值
            line2 = int(self.ui.lineEdit_2.text())  # 获取第二个编辑栏数值
            line3 = line1 + line2  # 进行求和计算

            # 显示计算结果
            self.ui.lineEdit_3.setText(str(line3))

        except ValueError:
            self.ui.lineEdit_3.setText("输入错误")

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = MainApp()
    window.show()
    sys.exit(app.exec_())

右键运行这个程序,在line1和line2分别输入2、5之后,按下PushButton按钮,可以看到line3输出了7,程序可以正常运行

自此,一个简单的pyqt程序就开发完成了。

2. 打包exe文件

2.1 通过PyCharm打包单文件exe

在完成了pyqt项目后,打包exe可以使用pyinstaller进行打包,一样的我们在PyCharm项目的Terminal中输入安装对应的库

bash 复制代码
pip install pyinstaller

安装完成后,确认打包的文件(这里是run_xxx.py)

(下一步之前要提前关闭杀毒软件,大概率会出现误报导致打包不成功,往后不再赘述)

然后在Terminal中输入

bash 复制代码
pyinstaller -F .\run_xxx.py

最终打包生成的exe文件就在工作目录的dist\run_xxx文件中。

这时所打包的exe文件可以直接拷贝使用,打包程序已经将所有的依赖文件压缩到了exe文件中。

2.2 通过PyCharm打包单个文件夹

如果你想输出文件夹(一般大文件时选择该类命令),则使用这个命令方式即可,然后拷贝dist文件夹才可以在其他PC使用

bash 复制代码
pyinstaller -D .\run_xxx.py

2.3 通过文件目录打包

因为不在pycharm中进行打包,缺少相关依赖的你就需要使用CMD命令,在全局安装pyqt5和pyinstaller两个依赖,然后在需要打包的文件夹路径(即:包含xxx.ui、xxx.py、run_xxx.py)下,按住Shift,同时点击右键菜单,你会从中找到(在此处打开Powershell窗口),然后再控制台中安装一样的方式进行打包即可。

如果双击后出现闪退(太快看不清楚错误原因),说明打包出现了问题。 为了知道具体原因: 需要在powershell的cmd中运行这个exe。

3. 参考资料

手把手教你将pyqt程序打包成exe(1)
手把手教你将pyqt程序打包成exe(2)
Python pyinstaller打包exe最完整教程

相关推荐
AntBlack20 分钟前
不当韭菜V1.1 :增强能力 ,辅助构建自己的交易规则
后端·python·pyqt
艾莉丝努力练剑38 分钟前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA2 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
杜子不疼.2 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖3 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨3 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
myzzb3 小时前
基于uiautomation的自动化流程RPA开源开发演示
运维·python·学习·算法·自动化·rpa
前端市界5 小时前
前端视角: PyQt6+Vue3 跨界开发实战
前端·qt·pyqt
非凡ghost6 小时前
AMS PhotoMaster:全方位提升你的照片编辑体验
windows·学习·信息可视化·软件需求
云间月13148 小时前
飞算JavaAI智慧教育场景实践:从个性化学习到教学管理的全链路技术革新
学习·飞算javaai挑战赛