当前位置: 首页 > article >正文

(2)python开发经验

文章目录

      • 1 pyside6加载ui文件
      • 2 使用pyinstaller打包


更多精彩内容
👉内容导航 👈
👉Qt开发 👈
👉python开发 👈

1 pyside6加载ui文件

方法1: 直接加载ui文件

from PySide6.QtWidgets import QApplication, QWidget, QPushButton
from PySide6.QtUiTools import QUiLoader
import sysif __name__ == "__main__":app = QApplication(sys.argv) # 创建应用程序对象ui = QUiLoader().load("widget.ui") # 加载ui文件ui.show()sys.exit(app.exec()) # 运行应用程序,并退出

方法2: 将ui文件生成为py源码,再进行加载

from PySide6.QtWidgets import QApplication, QWidget, QPushButton
import sys
from ui_widget import Ui_Formclass MyWidget(QWidget):def __init__(self):super().__init__()self.ui = Ui_Form()self.ui.setupUi(self)if __name__ == "__main__":app = QApplication(sys.argv) # 创建应用程序对象w = MyWidget() # 创建窗口对象w.show() # 显示窗口sys.exit(app.exec()) # 运行应用程序,并退出

核心区别

特性QUiLoader 动态加载生成 Ui 类静态加载
实现方式运行时直接解析 .ui 文件,无需预生成代码通过 pyside6-uic 预生成 Python 类,直接调用
依赖文件需保留 .ui 文件只需 .py 文件,无需保留 .ui(部署时可选)
代码耦合性低(UI 与逻辑分离)较高(UI 类需显式集成到代码中)
UI 修改生效无需重新生成代码,直接修改 .ui 文件即可需重新运行 pyside6-uic 生成新的 .py 文件

优缺点对比

QUiLoader 动态加载

  • 优点:
    • 灵活性高:修改 UI 后无需重新生成代码,适合频繁迭代 UI 的场景。
    • 减少代码量:无需维护生成的 UI 类代码。
    • 资源分离:UI 设计与业务逻辑完全解耦,便于团队协作。
  • 缺点:
    • 性能略低:运行时解析 XML 格式的 .ui 文件,比直接调用预生成类稍慢。
    • 路径依赖:需确保 .ui 文件路径正确,部署时需携带该文件。
    • 无代码提示:动态加载的控件需通过 findChild 获取,IDE 无法提供属性提示。

生成 Ui_MainWindow 类静态加载

  • 优点:
    • 性能高效:直接调用预生成代码,无运行时解析开销。
    • 代码提示友好:生成的类包含所有控件属性,IDE 可自动补全(如 self.ui.button)。
    • 部署简单:只需分发 .py 文件,无需携带 .ui 文件。
  • 缺点:
    • 流程繁琐:每次修改 UI 需重新生成代码。
    • 代码冗余:生成的 UI 类可能包含大量样板代码(但对用户透明)。

2 使用pyinstaller打包

  • 下载地址;

  • 使用下面命令进行打包

     pyinstaller.exe --paths E:\py\PythonProject\.venv\Lib\site-packages\PySide6 -w -F .\main.py# 在pycharm终端中如果安装了pyinstaller和pyside6,可以直接使用pyinstaller -w -F main.py
    

常用选项

选项说明
-F/--onefile生成单个独立的 .exe 文件(适合简单脚本)
-D/--onedir默认选项,生成包含依赖的目录结构(适合复杂项目)
-w/--windowed隐藏控制台窗口(GUI程序必备)
-c/--console显示控制台窗口(命令行程序默认启用)
-i <图标路径>.exe 文件设置图标(支持 .ico 格式)
-n设置生成可执行程序名称
--add-data <源路径;目标路径>添加额外文件(如配置文件、图片等)
--hidden-import <模块名>强制包含未自动检测的模块
--noconfirm覆盖输出目录时不提示确认
--clean清理临时文件后再重新构建
--paths如果你的脚本依赖于不在 Python 路径中的库,可以使用这个选项来添加这些路径。

注意:

打包的时候资源文件、UI文件、图片文件等不会被pyinstaller打包,需要手动复制到dist路径;



相关文章:

(2)python开发经验

文章目录 1 pyside6加载ui文件2 使用pyinstaller打包 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt开发 &#x1f448;&#x1f449;python开发 &#x1f448; 1 pyside6加载ui文件 方法1&#xff1a; 直接加载ui文件 from PySide6.QtWidgets import QAp…...

WebpackVite总结篇与进阶

模块化 Webpack Webpack 入口entry 分离app和第三方库入口 这是什么&#xff1f; 这是告诉 webpack 我们想要配置 2 个单独的入口点&#xff08;例如上面的示例&#xff09;。 为什么&#xff1f; 这样你就可以在 vendor.js 中存入未做修改的必要 library 或文件&#xff0…...

【python】基础知识点100问

以下是Python基础语法知识的30条要点整理,涵盖数据类型、函数、控制结构等核心内容,结合最新资料归纳总结: 基础30问 一、函数特性 函数多返回值 支持用逗号分隔返回多个值,自动打包为元组,接收时可解包到多个变量 def func(): return 1, "a" x, y = func()匿…...

uniapp 百家云直播插件打包失败

打包错误日志 Android自有证书 打包失败 错误日志: https://app.liuyingyong.cn/build/errorLog/cf41a610-effe-11ef-88db-05262d4c3e5d原因&#xff1a;需要导入插件依赖 依赖地址&#xff1a;https://ext.dcloud.net.cn/plugin?id16289 百家云直播插件地址 直播插…...

SpringBoot--springboot简述及快速入门

spring Boot是spring提供的一个子项目&#xff0c;用于快速构建spring应用程序 传统方式&#xff1a; 在众多子项目中&#xff0c;spring framework项目为核心子项目&#xff0c;提供了核心的功能&#xff0c;其他的子项目都需要依赖于spring framework&#xff0c;在我们实际…...

vscode_python远程调试_pathMappings配置说明

1.使用说明 vscode python 远程调试pathMappings 配置 launch.json "pathMappings": [{"localRoot": "本地代码目录","remoteRoot": "远程代码目录" # 注意不是运行目录, 是远程代码的目录}],2.测试验证 测试目的: 远程代…...

遨游5G-A防爆手机:赋能工业通信更快、更安全

在工业数字化转型与5G-A商用进程加速的双重驱动下&#xff0c;中国防爆手机市场正迎来历史性发展机遇。作为“危、急、特”场景通信解决方案服务商&#xff0c;遨游通讯深刻洞察到&#xff1a;当5G-A网络以超高速率、海量连接和毫秒级时延重塑行业生态时&#xff0c;防爆手机这…...

Profibus DP主站与Modbus RTU/TCP网关与海仕达变频器轻松实现数据交互

Profibus DP主站与Modbus RTU/TCP网关与海仕达变频器轻松实现数据交互 Profibus DP主站转Modbus RTU/TCP&#xff08;XD-MDPBm20&#xff09;网关在Profibus总线侧实现主站功能&#xff0c;在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备&#xff08;如&#xff1a;海…...

C++八股——智能指针

文章目录 1. 背景2. 原理与使用2.1 auto_ptr2.2 unique_ptr2.3 shared_ptr2.4 weak_ptr2.5 定制删除器 1. 背景 智能指针不是指针&#xff0c;是一个管理指针的类&#xff0c;用来存储指向动态分配对象的指针&#xff0c;负责自动释放动态分配的对象&#xff0c;防止堆内存泄漏…...

「华为」人形机器人赛道投资首秀!

温馨提示&#xff1a;运营团队2025年最新原创报告&#xff08;共210页&#xff09; —— 正文&#xff1a; 近日&#xff0c;【华为】完成具身智能赛道投资首秀&#xff0c;继续加码人形机器人赛道布局。 2025年3月31日&#xff0c;具身智能机器人头部创企【千寻智能&#x…...

格雷希尔G10和G15系列自动化快速密封连接器,适用于哪些管件的密封,以及它们相关的特性有哪些?

格雷希尔G10和G15系列快速密封连接器&#xff0c;用于自动化和半自动化过程中的外部或内部密封&#xff0c;通过使用气压驱动来挤压内部的密封圈&#xff0c;创造一个适用于各种管件的无泄漏密封连接&#xff0c;连接器内部的弹性密封圈可以提供其他产品不能提供的卓越密封性能…...

mac一键安装gpt-sovit教程中,homebrew卡住不动的问题

mac一键安装gpt-sovit教程 仅作为安装过程中解决homebrew卡住问题的记录 资源地址 https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/znoph9dtetg437xb#mlAoP 下载一键包 下载后并解压&#xff0c;找到install for mac.sh&#xff0c;终端执行bash空格拖拽in…...

专栏特辑丨悬镜浅谈开源风险治理之SBOM与SCA

随着容器、微服务等新技术日新月异&#xff0c;开源软件成为业界主流形态&#xff0c;软件行业快速发展。但同时&#xff0c;软件供应链也越来越趋于复杂化和多样化&#xff0c;软件供应链安全风险不断加剧。 软件供应链安全主要包括软件开发生命周期和软件生存运营周期&#x…...

vue3项目创建-配置-elementPlus导入-路由自动导入

目录 方法一&#xff1a;create-vue 方法二 &#xff1a;Vite Vue Vite.config.ts配置 引入element-plus 安装 如何在项目中使用 Element Plus 完整引入 按需导入 vue3vite中自动配置路由的神器&#xff1a;vite-plugin-pages 1. 安装 2、修改vite.config.js中配置…...

MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置

视频讲解&#xff1a; MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置 今天分享的主题为创建自动化脚本编译MUSE Pi Pro的kernel内核&#xff0c;脚本已经上传到中 GitHub - LitchiCheng/MUSE-Pi-Pro-Learning: MUSE-Pi-Pro-Learning &#xff0c;有需要可以自行clon…...

Java大师成长计划之第20天:Spring Framework基础

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4o-mini模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在Java开发领域&#xff0c;Spring …...

Innovus 25.1 版本更新:助力数字后端物理设计新飞跃

在数字后端物理设计领域&#xff0c;每一次工具的更新迭代都可能为项目带来巨大的效率提升与品质优化。今天&#xff0c;就让我们一同聚焦 Innovus 25.1 版本&#xff08;即 25.10 版本&#xff09;的更新要点&#xff0c;探寻其中蕴藏的创新能量。 一、核心功能的强势进 AI…...

FastAPI 和 MongoDB 实现请求头参数处理的示例,并在 React 中进行渲染

FastAPI 和 MongoDB 后端 安装必要的库 安装 FastAPI、Uvicorn、Motor&#xff08;用于 MongoDB 的异步驱动&#xff09;和 Pydantic&#xff08;用于数据验证&#xff09;。 pip install fastapi uvicorn motor pydantic创建 FastAPI 应用 创建一个文件 main.py&#xff0c;并…...

CodeBuddy 中国版 Cursor 实战:Redis+MySQL双引擎驱动〈王者荣耀〉战区排行榜

文章目录 一、引言二、系统架构设计2.1、整体架构概览2.2、数据库设计2.3、后端服务设计 三、实战&#xff1a;从零构建排行榜3.1、开发环境准备3.2、用户与战区 数据管理3.2.1、MySQL 数据库表创建3.2.2、实现用户和战区数据的 CURD 操作 3.3、实时分数更新3.4、排行榜查询3.5…...

码蹄集——分解、数组最大公约数、孪生质数、卡罗尔数、阶乘数

MT1158 分解 输入正整数N和M&#xff0c;判断N是否可以分解成M个不同的正整数的和&#xff0c;输出YES或者NO。 格式 输入格式&#xff1a;输入正整数N和M&#xff0c;空格分隔 输出格式&#xff1a;输出YES或者NO 样例 1 输入&#xff1a;5 2 输出&#xff1a;YES 思路…...

【React中函数组件和类组件区别】

在 React 中,函数组件和类组件是两种构建组件的方式,它们在多个方面存在区别,以下详细介绍: 1. 语法和定义 类组件:使用 ES6 的类(class)语法定义,继承自 React.Component。需要通过 this.props 来访问传递给组件的属性(props),并且通常要实现 render 方法返回 JSX…...

Idea Code Templates配置

Templates配置 配置位置模板案例 配置位置 Settings->Editor->File and Code Templates模板案例 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#endimport com.ktools.common.dataprocess.DataProcess; import com.ktools…...

在线SQL转ER图工具

在线SQL转ER图网站 在数据库设计、软件开发或学术研究中&#xff0c;ER图&#xff08;实体-关系图&#xff09; 是展示数据库结构的重要工具。然而&#xff0c;手动绘制ER图不仅耗时费力&#xff0c;还容易出错。今天&#xff0c;我将为大家推荐一款非常实用的在线工具——SQL…...

python高级特性

json.dumps({a:1,n:2}) #Python 字典类型转换为 JSON 对象。相当于jsonify data2 json.loads(json_str)#将 JSON 对象转换为 Python 字典 异步编程&#xff1a;在异步编程中&#xff0c;程序可以启动一个长时间运行的任务&#xff0c;然后继续执行其他任务&#xff0c;而无需等…...

汇编:子程序设计

一、 实验要求 实验目的&#xff1a; 熟练掌握算术运算汇编指令的使用熟练掌握子程序设计的基本方法熟练掌握程序的调试方法 实验内容&#xff1a; 编程实现两个数&#xff1a;#8888H和#79H的乘除运算结合实验1的代码&#xff0c;将加减乘除四则运算写成四个子程序&#xff…...

从概念表达到安全验证:智能驾驶功能迎来系统性规范

随着辅助驾驶事故频发&#xff0c;监管机制正在迅速补位。面对能力表达、使用责任、功能部署等方面的新要求&#xff0c;行业开始重估技术边界与验证能力&#xff0c;数字样机正成为企业合规落地的重要抓手。 2025年以来&#xff0c;围绕智能驾驶功能的争议不断升级。多起因辅…...

ubuntu 24.04 error: cannot uninstall blinker 1.7.0, record file not found. hint

最近在打python3.12的镜像&#xff0c;安装browser-gym的核心库&#xff0c;编译一个使用browswer agents的环境&#xff0c;然后出现了下面的问题&#xff1a; error: cannot uninstall blinker 1.7.0, record file not found. hint: the package was installed by debian.系…...

DeepSeek基于注意力模型的可控图像生成

DeepSeek大模型高性能核心技术与多模态融合开发 - 商品搜索 - 京东 图像的加噪与模型训练 在扩散模型的训练过程中&#xff0c;首先需要对输入的信号进行加噪处理&#xff0c;经典的加噪过程是在图像进行向量化处理后在其中添加正态分布&#xff0c;而正态分布的值也是与时间…...

“端 - 边 - 云”三级智能协同平台的理论建构与技术实现

摘要 随着低空经济与智能制造的深度融合&#xff0c;传统集中式云计算架构在实时性、隐私保护和资源效率上的瓶颈日益凸显。本文提出“端 - 边 - 云”三级智能协同平台架构&#xff0c;以“时空 - 资源 - 服务”三维协同理论为核心&#xff0c;构建覆盖终端感知、边缘计算、云端…...

AI时代,如何实现人机共舞?

在科技飞速发展的当下&#xff0c;人工智能&#xff08;AI&#xff09;已不再是科幻作品中的遥远想象&#xff0c;而是深入渗透到我们生活与工作的方方面面。从智能手机中的语音助手&#xff0c;到金融领域的风险预测模型&#xff1b;从医疗影像的智能诊断&#xff0c;到工业生…...