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

PyQt5入门实战:安装、QtDesigner设计与PyUIC转换完整指南

PyQt5 入门实战安装、QtDesigner 设计与 PyUIC 转换完整指南环境说明Python 3.9 PyQt5 5.15.4 PyCharmCommunity/Professional 均适用一、什么是 PyQt5PyQt5是 Qt5 框架的 Python 绑定由 Riverbank Computing 基于 SIPC 桥接工具封装。它让 Python 开发者可以用纯 Python 代码构建功能完整的跨平台桌面 GUI 应用。1.1 核心特点特点说明跨平台一套代码运行在 Windows / macOS / Linux控件丰富数百种原生控件外观与操作系统一致可视化设计配套 Qt Designer 拖拽设计界面无需手写布局代码信号槽机制独特的事件通信系统松耦合易维护免费开源GPL 协议开源商业用途需购买授权1.2 PyQt5 架构总览架构分三层Python 应用层开发者编写的.py业务逻辑代码PyQt5 绑定层SIP 负责 Python 调用 C Qt 的桥接Qt5 底层C 实现的高性能 UI 引擎二、安装 PyQt52.1 相关包说明安装 PyQt5 时需要关注以下几个包以截图中实际版本为例包名版本作用pyqt55.15.4核心包包含所有 Qt 控件 Python 绑定pyqt5-tools5.15.4.3.2工具包含 Qt Designer 可执行文件pyqt5-qt55.15.2Qt5 运行时 C 动态库pyqt5-sip12.17.1SIP 桥接层Python 调用 C 的核心组件2.2 安装方法方法一PyCharm 图形界面安装推荐新手打开 PyCharm →文件→设置→项目→Python 解释器点击右侧号搜索pyqt5勾选后点击安装软件包同理搜索安装pyqt5-tools方法二pip 命令安装pipinstallpyqt5 pyqt5-tools提示若下载较慢可使用国内镜像加速pipinstallpyqt5 pyqt5-tools-ihttps://pypi.tuna.tsinghua.edu.cn/simple2.3 验证安装importPyQt5print(PyQt5.QtCore.PYQT_VERSION_STR)# 输出 5.15.4 表示安装成功三、在 PyCharm 中配置外部工具安装完成后需要在 PyCharm 中配置QtDesigner和PyUIC两个外部工具后续便可一键启动设计器和转换.ui文件。进入配置入口PyCharm → 文件 → 设置CtrlAltS→ 工具 → 外部工具 → 点击 号3.1 配置 QtDesigner在弹出的编辑工具对话框中填写以下内容字段填写内容名称QtDesigner程序Qt Designer 可执行文件路径实参留空工作目录$FileDir$如何找到 designer.exe 路径在 PyCharm 终端执行python-cimport qt5_applications; import os; print(os.path.dirname(qt5_applications.__file__))找到输出的目录后拼接路径输出目录\Qt\bin\designer.exe完整路径示例根据你的实际虚拟环境路径调整C:\Users\用户名\AppData\Local\Programs\Python\Python39\.venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe截图中显示的路径末尾为...\site-packages\qt5_applications\Qt\bin\designer.exe这是虚拟环境下的标准位置。配置完成后高级选项中勾选✅ 在执行后同步文件✅ 打开工具输出的控制台3.2 配置 PyUICPyUIC 用于将 Qt Designer 生成的.ui文件转换为 Python 代码.py。字段填写内容名称PyUIC程序当前虚拟环境的python.exe路径实参-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py工作目录$FileDir$python.exe 路径示例C:\Users\用户名\AppData\Local\Programs\Python\Python39\.venv\Scripts\python.exe实参说明-m PyQt5.uic.pyuic以模块方式调用 pyuic5$FileName$当前选中的.ui文件名PyCharm 宏变量-o $FileNameWithoutExtension$.py输出为同名.py文件配置完成后效果如截图所示工具 → 外部工具 下会出现QtDesigner和PyUIC两个工具项。四、启动 QtDesigner 设计 UI4.1 启动方式配置完成后在 PyCharm 中工具 → 外部工具 → QtDesigner成功后将弹出如下界面Qt 设计师Qt Designer 界面组成区域说明左侧 Widget Box控件库包含布局/按钮/输入框/列表等数百种控件中央画布设计区域拖拽控件到此处右上 对象查看器显示界面中所有控件的树状结构右中 属性编辑器修改选中控件的属性大小/字体/颜色等右下 资源浏览器管理图片等资源文件上图为成功启动后的 Qt 设计师界面选择Main Window模板即可开始设计主窗口。4.2 基本操作流程启动 QtDesigner选择模板MainWindow / Dialog / Widget从左侧控件库拖拽控件到中央画布在右侧属性编辑器调整控件属性CtrlS保存为.ui文件保存到 PyCharm 项目目录五、PyUIC 转换 .ui 为 .py设计完 UI 后通过 PyUIC 将.ui转换为 Python 代码在 PyCharm 项目中右键点击.ui文件选择外部工具→PyUIC同目录下会自动生成同名.py文件转换后的 .py 文件结构# 由 PyUIC 自动生成不要手动修改fromPyQt5importQtCore,QtGui,QtWidgetsclassUi_MainWindow(object):defsetupUi(self,MainWindow):MainWindow.setObjectName(MainWindow)MainWindow.resize(800,600)# ... 所有控件的创建和布局代码defretranslateUi(self,MainWindow):# 文字内容设置支持国际化MainWindow.setWindowTitle(MainWindow)六、完整开发工作流程安装 PyQt5 pyqt5-tools ↓ 配置 PyCharm 外部工具QtDesigner / PyUIC ↓ 启动 QtDesigner 拖拽设计界面 ↓ 保存为 .ui 文件 ↓ 右键 → PyUIC → 生成同名 .py 文件 ↓ 在主程序中导入 .py绑定信号槽运行程序主程序调用示例importsysfromPyQt5.QtWidgetsimportQApplication,QMainWindowfromui_mainwindowimportUi_MainWindow# 导入 PyUIC 生成的文件classMainWindow(QMainWindow):def__init__(self):super().__init__()self.uiUi_MainWindow()self.ui.setupUi(self)# 在此绑定信号与槽self.ui.pushButton.clicked.connect(self.on_click)defon_click(self):print(按钮被点击)if__name____main__:appQApplication(sys.argv)winMainWindow()win.show()sys.exit(app.exec_())七、常见问题Q1找不到 designer.exe确认已安装pyqt5-tools然后执行pip show pyqt5-tools在Location路径下找qt5_applications\Qt\bin\designer.exe。Q2PyUIC 运行后没有生成 .py 文件确认实参格式正确注意-m PyQt5.uic.pyuic前后有空格确认程序路径指向的是虚拟环境的python.exe不是系统 PythonQ3QtDesigner 打开时报 DLL 错误重新安装pyqt5-qt5pipinstall--force-reinstall pyqt5-qt5Q4生成的 .py 里中文显示乱码在文件头添加# -*- coding: utf-8 -*-并确保 .ui 文件保存时使用 UTF-8 编码。八、总结工具用途关键路径/参数pyqt5核心 Python 绑定库pip install pyqt5pyqt5-tools含 Qt Designerpip install pyqt5-toolsQtDesigner可视化拖拽设计 UI...\qt5_applications\Qt\bin\designer.exePyUIC.ui → .py 自动转换-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py核心理念PyQt5 将 UI 设计.ui与业务逻辑.py分离QtDesigner 专注界面Python 专注逻辑是桌面 GUI 开发的高效实践。下一篇预告PyQt5 信号与槽机制详解 —— 从按钮点击到自定义事件彻底理解 Qt 的事件驱动模型。\qt5_applications\Qt\bin\designer.exe| | **PyUIC** | .ui → .py 自动转换 |-m PyQt5.uic.pyuicFileNameFileNameFileName-oFileNameWithoutExtensionFileNameWithoutExtensionFileNameWithoutExtension.py |核心理念PyQt5 将 UI 设计.ui与业务逻辑.py分离QtDesigner 专注界面Python 专注逻辑是桌面 GUI 开发的高效实践。下一篇预告PyQt5 信号与槽机制详解 —— 从按钮点击到自定义事件彻底理解 Qt 的事件驱动模型。

相关文章:

PyQt5入门实战:安装、QtDesigner设计与PyUIC转换完整指南

PyQt5 入门实战:安装、QtDesigner 设计与 PyUIC 转换完整指南环境说明:Python 3.9 PyQt5 5.15.4 PyCharm(Community/Professional 均适用)一、什么是 PyQt5? PyQt5 是 Qt5 框架的 Python 绑定,由 Riverba…...

别只盯着内核!RT-Thread v5.2.2里这些开发工具和测试框架的更新,同样能提升你的效率

别只盯着内核!RT-Thread v5.2.2里这些开发工具和测试框架的更新,同样能提升你的效率 当大多数开发者都在关注RT-Thread v5.2.2的内核优化和驱动升级时,那些隐藏在更新日志后半部分的工具链改进,正在悄然重塑嵌入式开发的效率边界。…...

Python数据科学实战:list、numpy与torch.tensor高效互转指南

1. 为什么需要掌握数据结构互转技巧 在数据科学和机器学习项目中,数据格式的混乱往往是bug的主要来源之一。我遇到过太多这样的情况:模型训练时突然报错,排查半天发现是输入数据的格式不对;或者在不同库之间传递数据时&#xff0c…...

生成式AI时代的产品创新:以AI Agent为核心功能的下一代APP设计

生成式AI时代的产品创新:以AI Agent为核心功能的下一代APP设计 1. 引入与连接 1.1 一个引人入胜的未来场景 想象一下,2025年的一个普通早晨: 你的手机闹钟响起,但这不是预设好的固定时间,而是你的"私人生活助理"AI Agent根据你的睡眠质量、当天日程和天气情…...

别再到处找下载链接了!Linux系统压力测试工具stress和stress-ng最新稳定版安装包获取指南

Linux系统压力测试工具stress与stress-ng权威获取指南 在Linux系统运维和性能调优领域,压力测试是不可或缺的环节。作为最常用的两款开源压测工具,stress和stress-ng能够模拟CPU、内存、IO等多种资源的高负载场景,帮助开发者验证系统稳定性。…...

5分钟搞定!Android Studio中文界面完整汉化终极指南

5分钟搞定!Android Studio中文界面完整汉化终极指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Android St…...

如何在3分钟内免费获得Apex Legends终极压枪助手

如何在3分钟内免费获得Apex Legends终极压枪助手 【免费下载链接】Apex-NoRecoil-2021 Scripts to reduce recoil for Apex Legends. (auto weapon detection, support multiple resolutions) 项目地址: https://gitcode.com/gh_mirrors/ap/Apex-NoRecoil-2021 还在为Ap…...

从I2C波形到数据校验:用逻辑分析仪深度调试STM32驱动SHT30的全过程

从I2C波形到数据校验:用逻辑分析仪深度调试STM32驱动SHT30的全过程 当你的STM32代码无法正确读取SHT30温湿度数据时,示波器或逻辑分析仪捕获的I2C波形往往比串口打印的调试信息更有说服力。本文将带你走进硬件调试的真实战场,通过分析四种典型…...

从代码审计到漏洞挖掘:深度解析Gerapy项目管理模块的RCE漏洞(CVE-2021-32849)

从代码审计到漏洞挖掘:深度解析Gerapy项目管理模块的RCE漏洞(CVE-2021-32849) 在分布式爬虫管理领域,Gerapy作为整合Scrapy、Django等技术栈的解决方案,其安全性直接影响企业数据采集业务的稳定性。2021年曝光的CVE-20…...

ST MCSDK V6.2.0实战:手把手教你配置HSO-ST观测器,体验无感电机控制的‘快准稳’

ST MCSDK V6.2.0深度实战:HSO-ST观测器配置与无感控制优化指南 在电机控制领域,实现高精度、快速响应的无感控制一直是工程师们追求的目标。ST最新发布的MCSDK V6.2.0软件包中引入的HSO-ST(High Sensitivity Observer)观测器技术,为这一目标提…...

Multisim14仿真进阶:单管共射放大电路参数扫描与性能优化实战

1. 单管共射放大电路基础与Multisim14环境搭建 单管共射放大电路是模拟电路学习的经典案例,它就像电子世界的"扩音器",能把微弱的电信号放大到我们需要的强度。在Multisim14这个电子工程师的"虚拟实验室"里,我们可以安全…...

深入Linux内核:cgroup v2如何用单一层级解决容器资源管理的世纪难题?

Linux内核革命:cgroup v2如何用单一层级重塑容器资源管理 1. 从混乱到秩序:cgroup的演进之路 在云计算和容器化技术蓬勃发展的今天,Linux内核中的控制组(cgroup)技术已成为资源隔离和管理的基石。然而,cgro…...

052篇:NLP文本分类:判断邮件是投诉还是咨询

1. 前言 在RPA自动化中,经常会遇到需要理解文本内容的场景: 客户发来的邮件是投诉还是咨询? 工单描述属于哪个部门处理? 用户评价是正面还是负面? NLP(自然语言处理)可以自动分析文本,判断类别和情感。本文以百度NLP为例,讲解如何调用情感分析和自定义分类接口,并将…...

三步解除极域电子教室控制:JiYuTrainer让你重获电脑操作自由

三步解除极域电子教室控制:JiYuTrainer让你重获电脑操作自由 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 还在为课堂上被老师全屏控制电脑而束手无策吗&#xff1f…...

终极跨平台漫画阅读器:nhentai-cross完全指南,5分钟解锁全设备同步阅读体验

终极跨平台漫画阅读器:nhentai-cross完全指南,5分钟解锁全设备同步阅读体验 【免费下载链接】nhentai-cross A nhentai client 项目地址: https://gitcode.com/gh_mirrors/nh/nhentai-cross 还在为在不同设备间切换阅读漫画而烦恼吗?…...

保姆级教程:在YOLOv8中手把手集成SCAM注意力模块(附完整代码与配置文件)

零基础实战:YOLOv8集成SCAM注意力模块全流程解析 1. 环境准备与模块理解 在开始集成SCAM注意力模块之前,我们需要先搭建好开发环境并理解SCAM的工作原理。SCAM(Spatial Contextual Attention Module)是一种能够捕捉空间上下文信息…...

大理石平台的精度维护:日常保养与误差校正方法

好的,我们来详细说明大理石平台的精度维护方法,包括日常保养与误差校正两部分。大理石平台(或称花岗石平台)因其稳定性好、精度高,常作为精密测量和加工的基准平面。要维持其精度,需做好日常保养并掌握误差…...

嵌入式Linux驱动新选择:基于TinyDRM为ST7789V TFT屏幕编写现代化显示驱动

1. 为什么选择TinyDRM替代传统fbtft驱动 第一次接触ST7789V这类SPI接口的TFT屏幕时,大多数开发者都会选择fbtft驱动方案。我也不例外,当时在树莓派上折腾了好几天终于让屏幕亮起来。但随着项目深入,逐渐发现fbtft在嵌入式Linux上的局限性——…...

OFDM同步入门避坑指南:从‘符号对不上’到看懂STO估计曲线图

OFDM同步技术实战解析:从STO曲线图到MATLAB仿真避坑指南 刚接触OFDM同步的同学,一定对"符号定时偏差(STO)"这个术语感到既熟悉又陌生。教科书上定义清晰,但一到实际仿真就会遇到各种困惑:为什么F…...

剖析Powershell挖矿病毒:从WMI驻留到永恒之蓝横向移动的攻防实战

1. 初识Powershell挖矿病毒:当服务器CPU突然飙高时 那天早上刚到公司,运维同事小李就急匆匆跑过来:"张哥,咱们三台Web服务器CPU直接冲到100%了,用户投诉页面卡成PPT!"我连咖啡都没来得及喝就冲进…...

ELK Stack实战:构建高效企业日志分析平台

1. ELK Stack:企业日志管理的瑞士军刀 想象一下你管理着几十台服务器,每天产生的日志文件像雪片一样飞来。当系统出现故障时,你需要在海量日志中寻找那个关键的报错信息——这就像在干草堆里找一根针。这就是为什么越来越多的企业选择ELK St…...

深入解析ToTensor():从PIL到OpenCV的图像预处理最佳实践

1. ToTensor()的隐藏技能:不只是格式转换 很多人第一次看到ToTensor()这个函数名时,都会以为它只是简单地把图像数据转换成PyTorch的Tensor格式。但当我深入研究源码后才发现,这个函数背后藏着不少容易被忽略的重要细节。让我用一个实际项目中…...

扩散模型 vs GAN:哪个更适合你的图像生成任务?(含对比实验)

扩散模型与GAN的深度对比:如何选择适合你的图像生成方案 在计算机视觉领域,图像生成技术正经历着前所未有的变革。从早期的变分自编码器(VAE)到生成对抗网络(GAN),再到如今备受瞩目的扩散模型(Diffusion Model),每种技术都带来了独…...

关于缩微组别疯狂电路赛题T2计分规则的建议

简 介: 本文针对缩微组别疯狂电路赛题的计分规则提出了改进建议。作者分析当前存在四类争议观点,指出限制成品车模和放宽100g门槛都不可行。通过数据对比发现,由于T2三次累加计算,重量差距被过度放大(如120g车模与100g…...

SpringBoot集成PowerJob实战:从零构建高可靠分布式任务调度平台

1. 为什么选择PowerJob构建分布式任务调度平台 第一次接触分布式任务调度是在三年前的一个电商项目中,当时系统每天需要处理上百万订单的状态同步,用单机版的Spring定时任务经常出现执行超时甚至服务崩溃的情况。那时候尝试过XXL-JOB,直到后来…...

从CAN到CANFD:一文搞懂协议差异、电平实测与车载网络升级实战

从CAN到CANFD:车载通信协议的深度解析与实战升级指南 引言 在智能汽车快速发展的今天,车载电子控制单元(ECU)数量呈指数级增长,传统的CAN总线技术已逐渐显露出带宽瓶颈。我曾参与过多个车载网络升级项目,亲…...

Dematel法实战:从关系矩阵到要素权重的系统影响力解码

1. Dematel法:系统要素影响力的解码器 第一次接触Dematel法是在分析一个智能家居系统的功能模块时。当时产品经理抛出一个难题:十几个功能模块相互影响,到底哪个才是撬动用户体验的关键支点?传统的主观打分法总是引发团队争论&…...

自媒体增长引擎中内容量化成垂直领域知识库的思考

把高赞视频(尤其是剧情类)的内容量化成垂直领域知识库——这才是让agent真正“懂垂直领域”的核心护城河。 市面上很多AI工具只做“生成”,而如果把“爆款拆解→量化→知识库”做扎实,就能形成数据驱动的增长闭环,让选…...

告别瞎摸索!Blender高效建模必装的7个神仙插件及一键配置脚本

Blender高效建模:7款必备插件与自动化配置方案 在三维创作领域,效率往往决定着专业选手与业余爱好者的分水岭。当基础操作已经熟练掌握,如何突破生产力瓶颈?答案藏在那些经过行业验证的插件工具中。本文将揭秘职业建模师工作流中的…...

Apollo自定义场景(scenarios)并仿真

需求:给定一个包含自定义路径和若干障碍物的场景并在Apollo DreamView+仿真环境中仿真预测规划效果。 思路:生成apollo DreamView需要的场景配置文件,Apollo DreamView+进入PnC->Scenario_Sim中进行加载仿真。 开发环境:Apollo 11.0、Vmware Workstation 16 Pro、Ubun…...