0


Python+PyCharm 运用PyQt5及将.ui文件转换为.py文件(内含出错解决方法)

一、安装PyQt5 和 PyQt5-tools

安装PyQt5与PyQt5-tools
Win+R后输入cmd打开控制台,在控制台输入以下命令安装Pyqt5库和PyQt5-tools操作工具

pip install PyQt5
pip install PyQt5-tools

二、在PyCharm中添加PyQTdesigner和Pyuic

  1. 打开PyCharm软件,点击文件→设置在这里插入图片描述
  2. 在设置中点击工具→外部工具→+,添加刚才安装的Designer操作界面
名称:PyQt-Designer
程序:D:\Programs\Python\Python39\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
*注意程序这里因为每个人的安装路径不同,根据实际的路径填写上就行*
工作目录:$FileDir$

在这里插入图片描述
在这里插入图片描述

  1. 添加Pyuic代码转换工具, 依旧在上个操作上点击“+”添加Ui转Py功能。
名称:PyUIC
程序:D:\Programs\Python\Python39\python.exe
*注意程序这里是填写Python软件的实际路径,因为每个人的安装路径不同,根据实际的路径填写上就行*
实参:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py -x
工作目录:$FileDir$

在这里插入图片描述
4. 到这里就已经配置好了

三、开始PyQt可视界面排版

在项目上右键→ External Tools → PyQt-Designer (这个就是刚才添加的外部扩展)
在这里插入图片描述
跳转到Qt的UI设计界面。点击创建即可建立一个表单,在表单上面可以加入左边工具栏上的各种组件,这比我们手工输入代码生成方便多了。
在这里插入图片描述
在左边组件栏中按住想加入的组件,直接拖进表单中再放开,就可以将组件添加上去了。添加好相关组件后咱们保存好文件。
在这里插入图片描述

这时候就可以看到在项目下面多了刚才保存的ui格式文件了
在这里插入图片描述

四、ui文件转Py文件

在保存的ui文件上面右键→ External Tools → PyUIC ,然后系统自动会在相同目录下生成同一文件名的py件
在这里插入图片描述

最后生成的结果。是不是比我们自己手动打代码要方便得多!
在这里插入图片描述

到此就完成了Ui转py的全部步骤了

五、过程中遇到的报错及解决方法

  • 问题一 遇到语法错误,一开始还以是中文字符问题,因为最早我的文件夹是以中文命名的,及表单里部分组件也是中文内容,但测试过改文件夹名及新建个空白表单,仍旧一样报错,所以才发现根本不是中文文字的问题。
File "D:\python_work\practise_2\test2.ui", line 1<?xml version="1.0" encoding="UTF-8"?>^
SyntaxError: invalid syntax

在这里插入图片描述

解决方法:外部扩展中PyUIC中的实参代码有误,改正后解决此问题。

原因实参中的代码: $FileName$ -o $FileNameWithoutExtension$.py
改为:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py -x
  • 问题二 这是个乌龙事件,提示缺少有效的文件名,大意之下没有留意在PyUIC代码中,扩展名与文件名隔了个空格,所以导致报错,当然这是个小错误一下子就能发现,但这里也写出来算是做个备忘吧。
Error: one input ui-file must be specified

在这里插入图片描述

解决方法:把外部扩展中PyUIC实参中的代码,文件名与扩展名之间的空格删除就解决了

实参中的代码: -m PyQt5.uic.pyuic $FileName$ -o$FileNameWithoutExtension$ .py -x
改为:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py -x
标签: python pycharm qt

本文转载自: https://blog.csdn.net/jineeq/article/details/126006487
版权归原作者 IF先生 所有, 如有侵权,请联系我们删除。

“Python+PyCharm 运用PyQt5及将.ui文件转换为.py文件(内含出错解决方法)”的评论:

还没有评论