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

news2025/2/12 23:58:37

目录

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)  # 设置 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中输入安装对应的库

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最完整教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2297066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jenkins备份还原配置文件

下载ThinBackup插件 方式1 从插件市场直接下载 Manage Jenkins->Manage Plugins->可选插件搜索 注意:有时可能因为网络或者版本问题下载不了,好像是默认下载最新版本,可选择手动安装! 方式二 手动安装插件 点击查看手…

02.11 数据库

1.思维导图 2.题目 将 epoll 服务器、客户端拿来用客户端:写一个界面,里面有注册登录服务器:处理注册和登录逻辑,注册的话将注册的账号密码写入数据库,登录的话查询数据库中是否存在账号,并验证密码是否正…

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&#xff09…

通过 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 及更早版本)的通信工具箱支持包适…

neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.

目录 问题描述 解决方法 重新导入 问题描述 最近在linux上部署了neo4j,参照之前写的博客:neo4j-数据的导出和导入_neo4j数据导入导出-CSDN博客 进行了数据导出、导入操作。但是在进行导入后,重新登录网页版neo4j,发现对应的数据库状态变…

Mac(m1)本地部署deepseek-R1模型

1. 下载安装ollama 直接下载软件,下载完成之后,安装即可,安装完成之后,命令行中可出现ollama命令 2. 在ollama官网查看需要下载的模型下载命令 1. 在官网查看deepseek对应的模型 2. 选择使用电脑配置的模型 3. copy 对应模型的安…

【分布式理论9】分布式协同:分布式系统进程互斥与互斥算法

文章目录 一、互斥问题及分布式系统的特性二、分布式互斥算法1. 集中互斥算法调用流程优缺点 2. 基于许可的互斥算法(Lamport 算法)调用流程优缺点 3. 令牌环互斥算法调用流程优缺点 三、三种算法对比 在分布式系统中,多个应用服务可能会同时…

第一财经对话东土科技 | 探索工业科技新边界

当前以ChatGPT、Sora等为代表的生成式人工智能快速发展,越来越多面向垂直场景的行业大模型涌现出来,并成为推动制造业智能化改造与数字化转型、加快推进新型工业化,进而培育发展新质生产力的新引擎。 在垂类场景的应用落地,是AI发…

深入理解Java对接DeepSeek

其实,整个对接过程很简单,就四步,获取key,找到接口文档,接口测试,代码对接。 1.获取 KEY https://platform.deepseek.com/transactions 直接付款就是了(现在官网暂停充值2025年2月7日&#xf…

线段平移 实战笔记

目录 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…

WinForm 防破解、反编译设计文档

一、引言 1.1 文档目的 本设计文档旨在阐述 WinForm 应用程序防破解、反编译的设计方案,为开发团队提供详细的技术指导,确保软件的知识产权和商业利益得到有效保护。 1.2 背景 随着软件行业的发展,软件破解和反编译现象日益严重。WinForm…

DeepSeek应用——与word的配套使用

目录 一、效果展示 二、配置方法 三、使用方法 四、注意事项 1、永久化使用 2、宏被禁用 3、office的生成失败 记录自己学习应用DeepSeek的过程...... 这个是与WPS配套使用的过程,office的与这个类似: 一、效果展示 二、配置方法 1、在最上方的…

利用邮件合并将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/ 前置准备 制作标定板:生成高精度棋…

网络在线考试|基于vue的网络在线考试系统的设计与实现(源码+数据库+文档)

网络在线考试系统 目录 基于SSM+vue的网络在线考试系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1功能页面实现 2系统功能模块 3管理员功能模块 4学生功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

DEEPSEEK与GPT等AI技术在机床数据采集与数字化转型中的应用与影响

随着人工智能(AI)技术的迅猛发展,深度学习、自然语言处理等先进技术开始广泛应用于各行各业。在制造业尤其是机床行业,AI技术的融合带来了巨大的变革,尤其在机床数据采集与机床数字化方面的应用。本文将探讨DEEPSEEK、…