最近發現用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文件的相對路徑下,效果如下: