1.Qt designer 打开时可能会遇到类似于这样的错误,还有就是在程序中动态加在.ui文件后运行也可能会出现这样问题,以及将发开的程序打包成.exe文件后独立运行时也可能会出现这样的问题。网上的解决方案主要是两个,一个是把plugins文件夹下的platforms文件复制到与.exe同级的路径下。这个来说不能根本解决问题所以主要记录一下第二种方案。
首先,是在代码的最开始添加上这段代码,测试一下是否可以成功运行,如果可以的话进入第下步。
#为了解决运行报错的问题。
import os
import PySide2
dirname = os.path.dirname(PySide2.__file__)
plugin_path = os.path.join(dirname, 'plugins', 'platforms')
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_path
print(plugin_path)
关注一下控制台的输出,可以看到这行代码的输出是这个需要的文件的路径。
print(plugin_path)
然后打开“我的电脑”右键——“属性”——“高级系统设置”——“高级”——“环境变量”
添加新的系统变量其变量名如下,变量值为刚才控制台输出的值。
QT_QPA_PLATFORM_PLUGIN_PATH
添加后即可解决这一类问题。
注:添加完环境变量后一定要重启电脑!!!
2.使用Qt designer开发ui界面时有可能会碰到添加图片后,预览可以正常有图片资源,但是将.ui文件在程序中动态添加进去后不会显示问题。(注:这里添加指的是选择文件添加)这时原因可能有以下几种:
1存放项目的文件夹命名有空格或者命名太长。
2添加的图片命名需要注意。
3图片格式同.jpg调整为.png
4.如果直接利用重命名修改图片格式可能不行,将jpg图片放进ps中重新导出为png即可
3.使用Qt designer开发时为界面添加图片元素,图片不能随着比例自动调整问题。
首先使用label添加标签进去,然后为其填充图片,最后选择scaledContents即可。
4.使用pyinstaller进行开发后的程序打包。
首先,安装pip 安装pyinstaller程序包。
其次,使用windows的cmd命令行切换到程序项目文件夹下,找到主程序,然后右键属性找到文件位置,进行复制。进入cmd 输入cd 然后粘贴该位置,敲回车进入到该文件下。
然后输入该命令
pyinstaller main.py --noconsole --hidden-import PySide2.QtXml
第一个参数为不显示控制台,第二个参数为动态导入.ui文件。
最后在这个文件夹里即可找到打好包的项目文件,记着将需要的图片文件以及.ui文件复制到与.exe文件同级下面。
打包程序时有可能会遇到这样的问题。
就是说这个递归错误,大概率是自己调用自己太多次导致的。
参考博客:(2条消息) 总结的若干关于RecursionError: maximum recursion depth exceeded问题的解决办法_welcome_yu的博客-CSDN博客
解决办法:
在同级目录下生成的.spec文件中添加这两行后,使用之前的命令打包这个文件即可。
import sys
sys.setrecursionlimit(5000000)
即这样
pyinstaller Thermal_complete.spec --noconsole --hidden-import PySide2.QtXml