[Qt for Python] PySide 與 PyQt 的選擇

Spread the love

Python是目前全世界最多人使用的程式語言,也是應用範圍最廣的程式語言之一。除了當今最火紅的AI人工智慧領域外,舉凡網頁應用程式、桌面應用程式,甚至手機應用程式,都能看到Python的蹤跡。

在桌面應用程式的部分,Python能搭配的GUI框架有非常多種選擇,其中又以Qt這套跨平台GUI開發框架最為廣為人知。然而,Qt for Python卻有著複雜的歷史,導致目前市面上是有兩套GUI套件可供開發者選擇,分別是PySide和PyQt。如果你對於相關歷史有興趣,請參考下面這部影片。

該如何選擇?

那這兩個該如何選擇呢?這不是什麼大人跟小孩的選擇,直接說我全都要這麼簡單的。先講結論,兩者都可以選擇,但我會建議選擇PySide。下面的篇幅從三個層面來簡單分析,說明為何我這樣建議的理由。


第一、套件提供來源

PySide是由Qt官方(The Qt Company)所提供的Python for Qt的套件,雖然有一陣子它的套件維護和更新不及於PyQt,但隨著Python越來越多人使用的情況下,Qt官方對Python的支援程度,也跟著其主要的C++函式庫的腳步,持續著更新及維護。所以在Qt版本的相容性上,不會有太大的問題。

另外,官方所提供的文件,對於初學者來說,也非常足夠作為自學者的參考。再者,其實PySide跟PyQt在程式碼的撰寫部分,基本上沒太大差別,幾乎是完全相同的,所以即使遇到問題,在搜尋相關程式碼時,也是可以參考PyQt的相關搜尋結果。

第二、軟體授權方式

上面那部影片裡也有提到兩個框架在軟體授權方式的不同之處,PySide的授權是基於LGPL的,而PyQt則是GPL。簡單來說,如果你開發的程式最終需要發布給大眾使用,或者透過商業行為販售,那使用PyQt的話,是需要將原始程式碼做開源的動作的。反之,PySide就比較沒有開放原始碼的問題。

但,如果你只是要開發來做學習或自己使用的情況,不牽涉到發布和商業行為,那自然就沒有開放原始碼的問題,在這樣的前提下,選擇任何一個都沒有差。

第三、網路社群資源

這一點其實是第一點的延伸,在第一點的後半段就有提到,兩者的程式碼是大同小異的,也各自都有廣大的開發社群。所以這一點比較起來,兩者是平分秋色的。如果硬要比較的話,那我在這裡自我推薦一下,我接下來的相關文章都會以PySide作為開發框架,對於想要學習的人,可以透過我的網站,作為參考的資源之一。


適合什麼樣的人學習?

如果你對Python語言已經有一定的基礎,正在選擇GUI框架,那這個網站的相關文章就非常適合。歡迎你至頁面最下方訂閱電子報,確保在有新文章發布時,能收到email的通知。

目前我在這個網站有幾篇關於QML與C++的相關文章,所以接下來我會參考那幾篇文章,以PySide6為開發框架,介紹QML跟Python之間是如何互相存取和溝通的。

Similar Posts

2 Comments

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *