最近兩三週都在看GUI的編程,先是完整看了TKinter的視頻教程,確實簡潔,但是窗體的設計都得靠代碼去編寫,感覺還是不夠直觀,後面解除了PyQt5和PySide2,但是PyQt5已停止更新,但是2018年推出了PySide2,二者是親戚關係,最後決定使用PySide2作爲後期基於百度AI的智能應用程序的開發研究的圖形化編程部分。比較好的學習網站推薦是白月黑羽大佬的技術分享網站: www.python3.vip,裏面還有bilibili配套的視頻教程,講述詳細,條例清晰,值得一看。
下面就我所看過後梳理的關於從設計到發佈的全過程的操作方法進行分享。詳細步驟如下:
如果你懶得看文字,可以觀看我的bilibili上的視頻:https://www.bilibili.com/video/BV17p4y1X7uB/,是對此步驟做的一個詳細演示。
1.命令行安裝pyside2和發佈程序需要的pyinstaller
pyside2:
pip install pyside2 -i https://pypi.doubanio.com/simple/
或者
pin install pyside2
pyinstaller:
pip install pyinstaller -i https://pypi.doubanio.com/simple/
或者
pin install pyinstaller
2.找到designer.exe體驗窗體設計並保存爲ui文件
designer.exe位置爲:C:\Users\Administrator\AppData\Roaming\Python\Python37\site-packages\PySide2
注意:每個電腦的可能不相同,環境變量中python解釋器的位置+site-packages\PySide2
我在此案例中設計了一個ui窗口,效果如下圖:
3.用python程序調用ui文件呈現窗口。
from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader
class AppS:
def __init__(self):
# 從文件中加載UI定義
# 從 UI 定義中動態 創建一個相應的窗口對象
# 注意:裏面的控件對象也成爲窗口對象的屬性了
# 比如 self.ui.button , self.ui.textEdit
self.ui = QUiLoader().load('ex.ui')
app = QApplication([])
stats = AppS()
stats.ui.show()
app.exec_()
4.打包生成應用程序。
在命令行窗口,定位到需要打包發佈的程序文件夾下,執行命令:
pyinstaller ***.py --noconsole --hidden-import PySide2.QtXml
5.執行成功後,在生成目錄下找到dist文件夾下以py程序文件命名的文件夾下,有一個***.exe的文件即爲可執行程序。
因爲是外部導入的ui和圖片,因此需要將對應ui文件和pic文件所在的文件夾拷貝到與.exe文件同目錄下。
OK!