【IT168 評論】大多數程式設計師在已經準備好分析基礎示例之後,都會開始為程序構建一個圖形用戶界面。
在Python中,開始使用GUI編程的步驟並不複雜,但是它們要求用戶開始做出一些選擇。作為通用程式語言,每個常見作業系統都有可用的解釋器,所以創建圖形用戶界面對於Python來說並不是難事。因為程式設計師有很多的選擇,真正困難的是如何為用戶創建一個簡單的方式來與程序互動。
在各種各樣的平臺上都有相應的UI框架,它們可能分別可以在Windows,Mac和Linux平臺上運行,也可能可以同時在這三個平臺上運行。
「你的應用程式是否有一個傳統的圖形用戶界面?」對於某些應用程式來說,這個答案是肯定的,如果這個應用程式本質上是圖形化的,且在本地機器上做了優化或者是在本地運行,那麼就要考慮構建一個桌面圖形用戶界面。如果是更為通用的程序,那麼最好添加命令行或者Web界面。
命令行擁有很多優勢,例如速度、遠程訪問、可重用性,可腳本化和控制等等。這對用戶來說往往會比圖形用戶界面更為重要。當然,現在有很多庫可以支持設計很好的命令行程序,如Click,Cement和Cliff。
同樣的,對於本地運行的程序來說,Web界面也是十分值得考慮的。尤其是當你覺得用戶可能希望應用程式能夠像Django,Flask或Pyramid這樣的項目可以直接遠程託管。甚至你可以使用類似pywebview這樣的庫將Web應用程式包裹在native GUI window。
那麼如果來創建一個GUI呢?這裡有三個夢幻般的開源庫可以推薦給你!
PyQt
PyQt實現了流行的Qt庫,它開闢了在Python中開發應用程式的可能性,而且開發出的應用程式在其他平臺上擁有熟悉的外觀和感覺。
PyQt可以利用社區中強大的工具和資源,其擁有 commercial和GPL的雙重許可,與Qt項目不同,支持PyQt的主要公司都會提供license FAQ,有助於幫助程式設計師了解這對應用程式意味著什麼。
Tkinter
如果有一個包可以被稱為「Python的標準GUI工具包」,那麼它一定就是Tkinter。Tkinter是Tcl / Tk的封裝,是90年代初推出的流行圖形界面。選擇Tkinter的優勢是它擁有大量的資源,包括書籍和代碼示例,以及活躍的用戶社區,如果您有任何疑問,社區成員都可能會幫助到你。除此之外,還有很多簡單的入門示例,而且可讀性非常好。
Tkinter可以使用Python許可證,在Tcl / Tk的BSD許可證之上。
wxPython
WxPython帶來了wxWidgets 跨平臺GUI庫,支持將本機C++引入到Python中。WxPython是一種稍微更現代化的方法,它看起來比不同作業系統上的Tkinter更加接近原生,因為它不會嘗試創建自己的一組小部件。它的入門使用也比較容易,社區中的開發人員也在不斷增長,但是需要注意的是,可能需要將wxPython與應用程式捆綁在一起,因為它不會隨Python自動安裝。
WxPython使用其父項目的wxWindows庫許可證。
當然,上面這三種開源庫並不是唯一的選擇,在Python的官方頁面上,https://wiki.python.org/moin/GuiProgramming,你可以找到數十種工具。如果你有其它很好的推薦,歡迎在下方留言評論。