PyQt5+QtDesigner+fbs+python创建桌面程序
最近发现用PyQt5和QtDesigner创建python的GUI程序非常的方便,界面也要比TK好看不少,比如下图是用Qt写的一个界面:
下图是在QtDesigner中设计的界面,界面可以自适应窗口的变化,而且创建方法十分简单,只需要拖拉和创建layout就能快速的创建出需要的界面:
在QtDesigner中设计好界面之后,保存的格式为.ui文件,我们还需要把它转化为python文件。找到pyuic5.exe的路径,在.ui文件所在文件夹中打开命令窗口,输入如下命令:
(你的路径)\pyuic5 -x 文件名.ui -o 文件名.py
之后我们就得到了.py文件。
如果你使用PyCharm编辑器,可以把QtDesigner和pyuic5加入到外部工具,非常方便,添加方法如下:
打开PyCharm,打开File-Setting-Tools-External Tools,然后点击+号添加工具,下图是添加好的两个工具,只需要根据提示填写路径即可。
QtDesigner中的Arguments选择Filename,Working directory选择Filedir。
PyUIConv中的Arguments设置 -x $FileName$ -o $FileNameWithoutExtension$.py ,Working directory选择Filedir。
配置完成后,我们就可以选中文件右键调用了,非常方便,如下图所示:
在实现界面的功能时,我们新建一个python文件,把界面和功能分开来写,这样即使每次修改界面,也不会影响程序的运行。
在完成界面以及相应的功能后,我们可以用fbs来把python文件打包成为exe文件。
fbs的帮助文档地址:https://build-system.fman.io/manual/
现在fbs还不支持python3.7,所以如果要使用fbs来打包程序,请安装python3.5或3.6版本。
fbs的安装方法非常简单,使用conda prompt,在相应的虚拟环境下使用pip安装即可。
fbs安装完成后,在命令行(最好在conda prompt中)输入fbs startproject,会在文件夹下创建一个src文件夹,里面包含相应的文件。
我们把自己的python文件放在src\main\python文件夹中,并修改src\build\settings中的base.json文件,把main.py改为自己的主文件名称,需要在主文件中添加一行导入
from fbs_runtime.application_context import ApplicationContext 。
在命令行运行fbs run,查看是否正常启动。如果正常,运行fbs freeze,得到一个免安装版本的软件。当然也可以输出一个安装版,具体可查阅帮助文档:https://build-system.fman.io/manual/
最终生成一个target文件夹,下面放着打包后的exe文件,如果图标使用的是相对路径,记得把图标文件拷贝到exe文件的相对路径下,效果如下: