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

(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路径;



相关文章:

  • 【React中函数组件和类组件区别】
  • 无需翻墙!3D 优质前端模板分享
  • el-select 结合 el-tree:树形下拉数据
  • AI 检测原创论文:技术迷思与教育本质的悖论思考
  • 部署安装git-2.49.0.tar.xz
  • Profibus DP主站转Modbus RTU/TCP如何把E+H流量计接入到modbus
  • BGP联邦实验
  • 【deekseek】TCP Offload Engine
  • Ozon平台产品关键词优化指南:精准引流与转化提升实战策略
  • 一文辨析Java基本数据类型与包装类
  • Oracle OCP认证考试考点详解083系列15
  • 【Redis】RedLock实现原理
  • Android Native 之 自定义进程
  • C++修炼:继承
  • 【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
  • Springboot | 如何上传文件
  • 算法专题六: 模拟
  • 本地缓存的三种实现
  • Vxe UI vue vxe-table 实现表格数据分组功能,不是使用树结构,直接数据分组
  • 超标量处理器设计5-指令集体系
  • 习近平同巴西总统卢拉共同会见记者
  • 通辽警方侦破一起积压21年的命案:嫌疑人企图强奸遭反抗后杀人
  • 张笑宇:物质极大丰富之后,我们该怎么办?
  • 库尔德工人党决定自行解散
  • 4月国产新能源,降价潮迈入拐点
  • 姚洋将全职加盟上海财经大学,担任滴水湖高级金融学院院长