PyQt学习记录01——加法计算器
目录
PyQt学习记录01——加法计算器
PyQt学习记录02——串口助手
0. 安装配置
0.1 安装相关库
首先打开你的PyCharm程序,然后新建一个目录用于学习,其次在terminal中输入
pip install pyqt5
如果你不具有科学上网能力,请改为国内源
pip install pyqt5 -i https://pypi.douban.com/simple

然后安装pyqt相关工具
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填写
$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,输入以下代码,
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) # 设置 UIself.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中输入安装对应的库
pip install pyinstaller
安装完成后,确认打包的文件(这里是run_xxx.py)
(下一步之前要提前关闭杀毒软件,大概率会出现误报导致打包不成功,往后不再赘述)
然后在Terminal中输入
pyinstaller -F .\run_xxx.py
最终打包生成的exe文件就在工作目录的dist\run_xxx文件中。
这时所打包的exe文件可以直接拷贝使用,打包程序已经将所有的依赖文件压缩到了exe文件中。
2.2 通过PyCharm打包单个文件夹
如果你想输出文件夹(一般大文件时选择该类命令),则使用这个命令方式即可,然后拷贝dist文件夹才可以在其他PC使用
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最完整教程
相关文章:
PyQt学习记录01——加法计算器
目录 PyQt学习记录01——加法计算器 PyQt学习记录02——串口助手 0. 安装配置 0.1 安装相关库 首先打开你的PyCharm程序,然后新建一个目录用于学习,其次在terminal中输入 pip install pyqt5如果你不具有科学上网能力,请改为国内源 pip …...
笔记:蓝桥杯python搜索(3-2)——DFS剪支和记忆化搜索
目录 一、DFS剪支 二、例题 P2942 数字王国之军训军队 P3075 特殊的多边形 三、记忆化搜索 四、例题 例题 P3820 混境之地 P216 地宫取宝 一、DFS剪支 在搜索过程中,如果需要完全遍历所有情况可能需要很多时间在搜索到某种状态时,根据当前状态判断…...
k8s启空容器用于排查问题
如果 Pod 一会儿就销毁了,可能是由于 Pod 配置、节点状态或容器运行时问题导致的。 此时想进容器排查,但是pod一会儿就销毁了,不利于排查。 为了排查问题,可以启动一个空容器来临时保留 Pod,进而进入 Pod 内部进行调…...
jenkins备份还原配置文件
下载ThinBackup插件 方式1 从插件市场直接下载 Manage Jenkins->Manage Plugins->可选插件搜索 注意:有时可能因为网络或者版本问题下载不了,好像是默认下载最新版本,可选择手动安装! 方式二 手动安装插件 点击查看手…...
02.11 数据库
1.思维导图 2.题目 将 epoll 服务器、客户端拿来用客户端:写一个界面,里面有注册登录服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正…...
物联网(IoT)如何与人工智能(AI)的结合
物联网(IoT)与人工智能(AI)的结合是当前技术发展的重要趋势,通常被称为 AIoT(人工智能物联网)。这种结合通过将AI的计算能力和数据分析能力与物联网的海量设备连接能力相结合,实现了…...
嵌入式硬件篇---原码、补码、反码
文章目录 前言简介八进制原码、反码、补码1. 原码规则示例问题 2. 反码规则示例问题 3. 补码规则示例优点 4. 补码的运算5. 总结 十六进制原码、反码、补码1. 十六进制的基本概念2. 十六进制的原码规则示例 3. 十六进制的反码规则示例 4. 十六进制的补码规则示例 5. 十六进制补…...
PHP函数fgetc(): 从文件中读取一个字符
在PHP中,有许多用于文件操作的函数,其中之一就是fgetc()函数。fgetc()函数用于从打开的文件中读取一个字符,并将指针移动到下一个字符的位置。本文将介绍fgetc()函数的用法,并提供一些示例来帮助读者更好地理解和使用这个函数。 …...
Spring Boot整合DeepSeek实现AI对话(API调用和本地部署)
本篇文章会分基于DeepSeek开放平台上的API,以及本地私有化部署DeepSeek R1模型两种方式来整合使用。 本地化私有部署可以参考这篇博文 全面认识了解DeepSeek利用ollama在本地部署、使用和体验deepseek-r1大模型 Spring版本选择 根据Spring官网的描述 Spring AI是一…...
苹果转型独立AR眼镜:一场技术与创新的深度探索
在科技日新月异的今天,增强现实(AR)技术正逐渐从科幻电影走进我们的日常生活。作为科技界的领头羊,苹果公司的每一步动向都备受关注。近期,苹果宣布暂停原定的Mac连接式AR眼镜计划,转而全力研发一款独立的AR眼镜。这一战略调整不仅反映了苹果对AR市场的深度洞察,也预示着…...
Java小白入门基础知识(一)
1.初识Java java源程序通过javac 编译生成字节码文件,通过java命令运行java程序 总结: 1)在一个Java文件中,只能有一个public class 2)public class一定要和文件名一致 3)类里面包含方法 4)…...
通过 Docker 安装和部署 KeyDB v6.3.4 的详细步骤
KeyDB 是一种高性能的开源内存数据库,最初是基于 Redis 项目开发的,但在性能、特性和功能上进行了许多增强和改进。它兼容 Redis 的大部分命令和数据结构,因此可以作为 Redis 的替代品使用,尤其是在需要更高性能和多线程支持的场景…...
【JavaEE进阶】依赖注入 DI详解
目录 🌴什么是依赖注入 🎄依赖注入的三种方法 🚩属性注⼊(Field Injection) 🚩Setter注入 🚩构造方法注入 🚩三种注⼊的优缺点 🌳Autowired存在的问题 🌲解决Autowired存在的…...
Avnet RFSoC基于maltab得5G 毫米波 开发工具箱
使用 MATLAB 连接到 AMD Zynq™ RFSoC 评估板。使用 RF 附加卡执行 OTA 测试。使用 HDL Coder 部署算法 版本要求: 大于 2023b 需要以下支持包之一: 适用于 Xilinx 基于 Zynq 的无线电(R2023b 及更早版本)的通信工具箱支持包适…...
掌握 PHP 单例模式:构建更高效的应用
在 PHP 应用开发中,资源的高效管理至关重要。单例模式是一种能够帮助我们实现这一目标的设计模式。本文将深入探讨单例模式的概念、工作原理以及在 PHP 项目中何时应该(或不应该)使用它。 什么是单例模式? 单例模式是一种设计模…...
neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.
目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…...
卷积神经网络(CNN)池化层的最大池化(Max Pooling)和 平均池化(Average Pooling)
在 卷积神经网络(CNN) 中,池化层(Pooling Layer) 是用来 减少特征图的空间尺寸、减少计算量、控制过拟合 的关键层。池化层通过 窗口操作 将输入特征图中一定区域的信息压缩成一个单一的值,常见的池化方式有 最大池化(Max Pooling) 和 平均池化(Average Pooling)。这…...
Mac(m1)本地部署deepseek-R1模型
1. 下载安装ollama 直接下载软件,下载完成之后,安装即可,安装完成之后,命令行中可出现ollama命令 2. 在ollama官网查看需要下载的模型下载命令 1. 在官网查看deepseek对应的模型 2. 选择使用电脑配置的模型 3. copy 对应模型的安…...
第六届MathorCup高校数学建模挑战赛-A题:淡水养殖池塘水华发生及池水自净化研究
目录 摘要 1 问题的重述 2 问题的分析 2.1 问题一的分析 2.2 问题二的分析 2.3 问题三的分析 2.4 问题四的分析 2.5 问题五的分析 3. 问题的假设 4. 符号说明 5. 模型的建立与求解 5.1 问题一的建模与求解 5.1.1 分析对象与指标的选取 5.1.2 折线图分析 5.1.3 相关性分析 5.1.4…...
【分布式理论9】分布式协同:分布式系统进程互斥与互斥算法
文章目录 一、互斥问题及分布式系统的特性二、分布式互斥算法1. 集中互斥算法调用流程优缺点 2. 基于许可的互斥算法(Lamport 算法)调用流程优缺点 3. 令牌环互斥算法调用流程优缺点 三、三种算法对比 在分布式系统中,多个应用服务可能会同时…...
第一财经对话东土科技 | 探索工业科技新边界
当前以ChatGPT、Sora等为代表的生成式人工智能快速发展,越来越多面向垂直场景的行业大模型涌现出来,并成为推动制造业智能化改造与数字化转型、加快推进新型工业化,进而培育发展新质生产力的新引擎。 在垂类场景的应用落地,是AI发…...
深入理解Java对接DeepSeek
其实,整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。 1.获取 KEY https://platform.deepseek.com/transactions 直接付款就是了(现在官网暂停充值2025年2月7日…...
如何设置爬虫的延时避免频繁请求?
在Python爬虫开发中,合理设置延时是避免频繁请求、降低被封禁风险的关键策略之一。以下是一些常见的延时设置方法和建议: 1. 使用 time.sleep() 设置固定延时 time.sleep() 是最简单直接的延时方法,通过暂停程序的执行来控制请求频率。例如…...
线段平移 实战笔记
目录 pingyi2.py pingyi2.py import numpy as np import cv2# 画线段的函数 def draw_line(img, p1, p2, color, thickness=2):cv2.line(img, tuple(p1), tuple(p2), color, thickness)# 创建图像并初始化 def create_image():# 创建一个黑色背景图像img = np.zeros((500, 50…...
【计算机毕业设计】Spring Boot教师人事档案管理系统功能说明
🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…...
WinForm 防破解、反编译设计文档
一、引言 1.1 文档目的 本设计文档旨在阐述 WinForm 应用程序防破解、反编译的设计方案,为开发团队提供详细的技术指导,确保软件的知识产权和商业利益得到有效保护。 1.2 背景 随着软件行业的发展,软件破解和反编译现象日益严重。WinForm…...
DeepSeek应用——与word的配套使用
目录 一、效果展示 二、配置方法 三、使用方法 四、注意事项 1、永久化使用 2、宏被禁用 3、office的生成失败 记录自己学习应用DeepSeek的过程...... 这个是与WPS配套使用的过程,office的与这个类似: 一、效果展示 二、配置方法 1、在最上方的…...
Android多包路由方案: ARouter 路由库
1. ARouter 简介 目标:ARouter 专门为 Android 组件化开发设计,解决跨模块路由和依赖问题。功能: 支持使用注解的方式注册路由(如 Activity、Fragment 或 Service)。提供统一的路由接口,用于跨包跳转和数据…...
利用邮件合并将Excel的信息转为Word(单个测试用例转Word)
利用邮件合并将Excel的信息转为Word 效果一览效果前效果后 场景及问题解决方案 一、准备工作准备Excel数据源准备Word模板 二、邮件合并操作步骤连接Excel数据源插入合并域预览并生成合并文档 效果一览 效果前 效果后 场景及问题 在执行项目时的验收阶段,对于测试…...
OpenCV 相机标定流程指南
OpenCV 相机标定流程指南 前置准备标定流程结果输出与验证建议源代码 OpenCV 相机标定流程指南 https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html https://learnopencv.com/camera-calibration-using-opencv/ 前置准备 制作标定板:生成高精度棋…...
