大多數(shù)程序員在已經(jīng)準(zhǔn)備好分析基礎(chǔ)示例之后,都會(huì)開始為程序構(gòu)建一個(gè)圖形用戶界面。
在Python中,開始使用GUI編程的步驟并不復(fù)雜,但是它們要求用戶開始做出一些選擇。作為通用編程語言,每個(gè)常見操作系統(tǒng)都有可用的解釋器,所以創(chuàng)建圖形用戶界面對(duì)于Python來說并不是難事。因?yàn)槌绦騿T有很多的選擇,真正困難的是如何為用戶創(chuàng)建一個(gè)簡單的方式來與程序互動(dòng)。
在各種各樣的平臺(tái)上都有相應(yīng)的UI框架,它們可能分別可以在Windows,Mac和Linux平臺(tái)上運(yùn)行,也可能可以同時(shí)在這三個(gè)平臺(tái)上運(yùn)行。
“你的應(yīng)用程序是否有一個(gè)傳統(tǒng)的圖形用戶界面?”對(duì)于某些應(yīng)用程序來說,這個(gè)答案是肯定的,如果這個(gè)應(yīng)用程序本質(zhì)上是圖形化的,且在本地機(jī)器上做了優(yōu)化或者是在本地運(yùn)行,那么就要考慮構(gòu)建一個(gè)桌面圖形用戶界面。如果是更為通用的程序,那么最好添加命令行或者Web界面。
命令行擁有很多優(yōu)勢(shì),例如速度、遠(yuǎn)程訪問、可重用性,可腳本化和控制等等。這對(duì)用戶來說往往會(huì)比圖形用戶界面更為重要。當(dāng)然,現(xiàn)在有很多庫可以支持設(shè)計(jì)很好的命令行程序,如Click,Cement和Cliff。
同樣的,對(duì)于本地運(yùn)行的程序來說,Web界面也是十分值得考慮的。尤其是當(dāng)你覺得用戶可能希望應(yīng)用程序能夠像Django,F(xiàn)lask或Pyramid這樣的項(xiàng)目可以直接遠(yuǎn)程托管。甚至你可以使用類似pywebview這樣的庫將Web應(yīng)用程序包裹在native GUI window。
那么如果來創(chuàng)建一個(gè)GUI呢?這里有三個(gè)夢(mèng)幻般的開源庫可以推薦給你!
PyQt
PyQt實(shí)現(xiàn)了流行的Qt庫,它開辟了在Python中開發(fā)應(yīng)用程序的可能性,而且開發(fā)出的應(yīng)用程序在其他平臺(tái)上擁有熟悉的外觀和感覺。
PyQt可以利用社區(qū)中強(qiáng)大的工具和資源,其擁有 commercial和GPL的雙重許可,與Qt項(xiàng)目不同,支持PyQt的主要公司都會(huì)提供license FAQ,有助于幫助程序員了解這對(duì)應(yīng)用程序意味著什么。
Tkinter
如果有一個(gè)包可以被稱為“Python的標(biāo)準(zhǔn)GUI工具包”,那么它一定就是Tkinter。Tkinter是Tcl / Tk的封裝,是90年代初推出的流行圖形界面。選擇Tkinter的優(yōu)勢(shì)是它擁有大量的資源,包括書籍和代碼示例,以及活躍的用戶社區(qū),如果您有任何疑問,社區(qū)成員都可能會(huì)幫助到你。除此之外,還有很多簡單的入門示例,而且可讀性非常好。
Tkinter可以使用Python許可證,在Tcl / Tk的BSD許可證之上。
wxPython
WxPython帶來了wxWidgets 跨平臺(tái)GUI庫,支持將本機(jī)C 引入到Python中。WxPython是一種稍微更現(xiàn)代化的方法,它看起來比不同操作系統(tǒng)上的Tkinter更加接近原生,因?yàn)樗粫?huì)嘗試創(chuàng)建自己的一組小部件。它的入門使用也比較容易,社區(qū)中的開發(fā)人員也在不斷增長,但是需要注意的是,可能需要將wxPython與應(yīng)用程序捆綁在一起,因?yàn)樗粫?huì)隨Python自動(dòng)安裝。
WxPython使用其父項(xiàng)目的wxWindows庫許可證。
當(dāng)然,上面這三種開源庫并不是唯一的選擇,在Python的官方頁面上,https://wiki.python.org/moin/GuiProgramming,你可以找到數(shù)十種工具。如果你有其它很好的推薦,歡迎在下方留言評(píng)論。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。