Python圖形界面開發的幾種方案
前面的教程中,我們程序的用戶交互界面都是命令行終端窗口。
程序的用戶交互界面,英文稱之為 UI (user interface)
當一個應用的 UI 比較復雜的時候,命令行方式就不便用戶使用了,這時我們需要圖形界面。
如果用 Python
語言開發 跨平台
的圖形界面的程序,主要有3種選擇:
-
Tkinter
基於Tk的Python庫,這是Python官方采用的標准庫,優點是作為Python標准庫、穩定、發布程序較小,缺點是控件相對較少。
-
wxPython
基於wxWidgets的Python庫,優點是控件比較豐富,缺點是穩定性相對差點、文檔少、用戶少。
-
PySide2、PyQt5
基於Qt 的Python庫,優點是控件比較豐富、跨平台體驗好、文檔完善、用戶多。
缺點是 庫比較大,發布出來的程序比較大。
白月黑羽的建議是,如果大家要開發小工具,界面比較簡單,可以采用Tkinter。
如果是發布功能比較多的正式產品,采用 基於Qt的PySide2、PyQt5。
本教程介紹的就是 使用 PySide2、PyQt5 開發Python程序的圖形界面。
PySide2、PyQt5 簡介
PySide2、PyQt5 都是基於著名的 Qt 庫。
Qt庫里面有非常強大的圖形界面開發庫,但是Qt庫是C++語言開發的,PySide2、PyQt5可以讓我們通過Python語言使用Qt。
但是 PySide2、PyQt5 這兩者有什么區別呢?
可以形象地這樣說: PySide2 是Qt的 親兒子
, PyQt5 是Qt還沒有親兒子之前的收的 義子
(Riverbank Computing這個公司開發的)。
那為什么 PyQt5 這個義子 反而比 PySide2 這個親兒子更出名呢?
原因很簡單:PySide2 這親兒子最近(2018年7月)才出生。
但是親兒子畢竟是親兒子,Qt准備大力培養,PySide2 或許更有前途。
已經在使用 PyQt5 的朋友不要皺眉, 兩個庫的使用 對程序員來說,差別很小:它們的調用接口幾乎一模一樣。
如果你的程序是PyQt5開發的,通常只要略作修改,比如把導入的名字從 PyQt5 換成 PySide2 就行了。反之亦然。
注意:必須先具備Python基礎知識,才可以學習本教程。還沒有Python基礎的朋友,可以直接學習本網站的Python基礎教程。
安裝 PySide2
很簡單,直接執行
pip install pyside2
即可下載安裝。
這個庫比較大,大概有100M左右,大家耐心等待。
有的朋友,網絡比較慢,可以指定國內的安裝源,下載安裝。
比如,使用豆瓣源下載安裝:
pip install pyside2 -i https://pypi.douban.com/simple/
建議:如果你的程序要發布給客戶使用,建議使用32位的Python解釋器,這樣打包發布的exe程序可以兼容32位的Windows
注意:
Qt 官方網站聲明了: Windows上 Python 3.8.0
調用 Qt 5.14 , 會有問題。
有類似下面這樣的導入錯誤
ImportError: Dll load failed while importing shiboken2: 找不到指定的程序
所以, 就是不能用 Python 3.8.0
,請使用3.8.1或者以后的版本, Python 3.7 也可以。
安裝PyQt5
如果你選擇PyQt5,直接執行
pip install pyqt5-tools
ubuntu
pip install qttools5-dev-tools
即可同時安裝 PyQt5 和 一些重要的工具,比如 Qt designer。