PyCharm如何使用Qt Designer

PyCharm如何使用Qt DesignerQtDesigner 是一个 GUI 设计器 能可视化设计出界面 PyQT5 通过 pyuic5 工具将 QtDesigner 生成的 xxx ui 文件转换成 python 代码 大大节省手工编写界面代码的工作量 本篇介绍如何在 PyCharm 中集成 QtDesigner 工具 包括 QTDesigner 的配置 pyuic5 的配置和调用界面代码的方法 pyqt5 可以使用 p

Qt Designer 是一个 GUI 设计器,能可视化设计出界面。PyQT5 通过 pyuic5 工具将 Qt Designer 生成的 xxx.ui 文件转换成 python 代码,大大节省手工编写界面代码的工作量。

本篇介绍如何在 PyCharm 中集成 Qt Designer 工具,包括 QT Designer 的配置, pyuic5 的配置和调用界面代码的方法。

pyqt5 可以使用 pip 工具来安装:

pip install pyqt5 

安装了 pyqt5 之后,在 python 安装目录下面的 Scripts 文件夹中,有一个 pyuic5.exe 文件,这个可执行文件用于将 Qt Designer 生成的 ui 文件转换为 python 代码。

安装 Qt Designer

在 https://build-system.fman.io/qt-designer-download 这个网址可以下载和安装独立的 Qt Designer 安装版,根据操作系统选择合适的安装文件进行安装。

在 PyCharm 中配置 Qt Designer

Qt Designer 安装后,在安装目录下面有一个 designer.exe 文件。打开该程序,以拖拽的方式设计界面元素。设计完成后保存为 xxx.ui 文件。ui 文件为 xml 格式,用于描述窗体和控件的属性。

在 PyCharm 中配置 Qt Designer,目的是在开发的时候,在 PyCharm 中直接操作 Qt Designer,同时能方便的将 ui 文件保存到 Python 工程指定的文件夹下。通过菜单 File -> Settings 打开如下的配置界面,点击右键 “+” 号配置 Qt Designer:

PyCharm如何使用Qt Designer
左边是配置的路径,右面是配置的参数:
Program: designer.exe 的路径
Working Directory: 设置保存的 UI 文件位置,$FileDir$ 表示文件所在目录。






这个配置适合调用 Qt Designer 新建窗口的情况。如果要对已经创建的 ui 文件进行编辑,为了方便,可以再新建一个配置如下:

PyCharm如何使用Qt Designer

测试一下。比如在 Python 工程中新建一个 designer 文件夹,选中 designer 文件夹

PyCharm如何使用Qt Designer
通过菜单 Tools -> External Tools 菜单打开 qt designer:

PyCharm如何使用Qt Designer

注意这里的 QT Designer Create 和 QT Designer Edit 都是我刚才配置的外部工具。在 Qt Designer 中新建一个 Main Window:

PyCharm如何使用Qt Designer
在 Main Window 中拖拽几个控件。因为本文主要讲解 Qt Designer 的用法,所以对控件的细节不展开。

PyCharm如何使用Qt Designer
然后将界面保存为 MainWindow.ui,路径为 designer 文件夹下面。选中 MainWindow.ui,通过菜单 Tools -> External Tools -> QT Desinger Edit,MainWindow.ui 文件被 Qt Designer 打开。Qt Designer 的配置没有问题。

配置 pyuic5

pyuic5.exe 需要安装 pyqt5 才有,是一个命令行工具,为了方便,可以将 pyuic5 所在的路径添加到环境变量中。然后使用下面的命令将 ui 文件转换为 python 代码:

pyuic5 MainWindow.ui -o MainWindow.py 

同样地,为了减少手工的操作,可以在 PyCharm 中将 pyuic5 配置为外部工具:

PyCharm如何使用Qt Designer
这里主要说一下 Arguments 参数,我们需要一个宏来实现文件名的灵活性,所以 Arguments 设置如下:

$FileName$ -o $FileNameWithoutExtension$.py 

参数比较直观,输入是完整的文件名,输出为相同的文件名,将扩展名替换为 py。完成这个配置后,选中 MainWindow.ui,通过菜单 Tools -> External Tools -> PyUIC5,自动将 ui 文件转换为 python 代码。

如何调用界面代码

ui 转换的 python 代码随着对 ui 的变更,每次都会重新生成,所以不要在 MainWIndow.py 中编写代码。我们需要另外新建一个 python 文件,并在其中编写代码来调用界面代码。

我们看到,qt designer 自动生成的代码实现了一个名为 UI_MainWindow 的类,这个类继承自 object,在该类的 setupUi() 方法中有一个名为 MainWindow 的参数,我们需要将真正的 QMainWindow 对象传给这个方法,来实现我们自己的主窗口。

from designer.MainWindow import Ui_MainWindow import sys from PyQt5.QtWidgets import QApplication, QMainWindow if __name__ == '__main__': # application 对象 app = QApplication(sys.argv) # QMainWindow对象 mainwindow = QMainWindow() # 这是qt designer实现的Ui_MainWindow类 ui_components = Ui_MainWindow() # 调用setupUi()方法,注册到QMainWindwo对象 ui_components.setupUi(mainwindow) # 显示 mainwindow.show() sys.exit(app.exec_()) 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173118.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月27日 上午9:24
下一篇 2026年3月27日 上午9:25


相关推荐

  • eclipse使用–设置自动补全代码

    1、Java设置自动补全(1)设置自动补全依次点击Window–>Perferences(选项设置)–>Java–>Editor(编辑)–>ContentAssist(内容辅助/代码提示)然后在“ContentAssist”页面中,可以看到下面有一个AutoActivation中有一个Autoactivationtrigge…

    2022年4月4日
    792
  • 7628刷breed_路由器刷breed_Web控制台助手v5.9版本.7z

    7628刷breed_路由器刷breed_Web控制台助手v5.9版本.7z1 路由器刷 breed Web 控制台助手 v5 9 版本 0Bytes2018 11 2223 01 332 路由器刷 breed Web 控制台助手 v5 9 版本 binbak0Bytes 11 2223 21 183 路由器刷 breed Web 控制台助手 v5 9 版本 BreedEnter0B 11 2221 43 234 路由器刷 breed Web 控制台助手 v5 9 版本 MyW

    2026年3月19日
    2
  • 超简单看明白如何求最长递增子序列-动态规划

    超简单看明白如何求最长递增子序列-动态规划最长递增子序列:给定一个长度为N的数组,找出一个最长的单调递增子序列,子序列不一定连续,但初始顺序不能乱。例如:给定一个长度为6的数组A{4,5,7,1,3,9},则其最长的单调递增子序列为{4,5,7,9},长度为4。动态规划思路:记d[i]为以任意一个A[i]为末尾元素组成的最长递增子序列的长度,找出所有位于i之前且比A[i]小的元素A[j],此时可出现两种情况:…

    2022年6月12日
    31
  • 以太网RJ45 接线标准 线序(备忘)「建议收藏」

    以太网RJ45 接线标准 线序(备忘)「建议收藏」RJ是RegisteredJack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中的定义是,RJ是描述公用电信网络的接口,常用的有RJ-11和RJ-45,计算机网络的RJ-45是标准8位模块化接口的俗称。568A的排线顺序从左到右依次为:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕。568B的排线顺序从左到右依次为:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕。所谓的交叉线是指:一端…

    2025年11月23日
    4
  • cdn加速 免备案_免备案cdn国内节点

    cdn加速 免备案_免备案cdn国内节点不备案可以进行CDN加速吗?既然探讨这个问题,我们就得先谈一下什么是CDN加速。内容传递网路(英语:ContentDeliveryNetwork或ContentDistributionNetwork,缩写:CDN)是指一种透过互联网互相连接的电脑网路系统,利用最靠近每位使用者的伺服器,更快、更可靠地将音乐、图片、影片、应用程式及其他档案传送给使用者,来提供高效能、可扩展性及低成本的网路内容传递给使用者。目的:解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、..

    2025年10月24日
    5
  • 在 IT 外包公司工作有哪些优势和弊端?

    在 IT 外包公司工作有哪些优势和弊端?看外包公司的性质,有的是外包人力,有的是承接外包项目在自己公司做,有的是承接项目在外包公司做,也有的公司上面这几项同时做,同时也可能开发自己的产品。对用人单位来讲,短期看我喜欢外包人力,因为能解决公司人力紧缺的问题,同时外包人员和项目组成员配合更紧密,对项目出活有好处。我自己的亲身体会是,外包公司派过来的人一般要比自己的员工更努力,不挑活,他们希望通过好好表现,将来可以留在外派公司里。长期来看,我…

    2022年5月12日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号