談?wù)刾ython中GUI的選擇
盡管內(nèi)容可能有些老,但是沒(méi)有關(guān)系,對(duì)于想深入Python開發(fā)的工作者,在選擇GUI開發(fā)包,乃至可視化IDE方面都還有相當(dāng)?shù)慕梃b意義。
Python最大的特點(diǎn)就在于她的快速開發(fā)功能。作為一種膠水型語(yǔ)言,python幾乎可以滲透在我們編程過(guò)程中的各個(gè)領(lǐng)域。這里我簡(jiǎn)單介紹一下用 python進(jìn)行g(shù)ui開發(fā)的一些選擇。
1、Tkinter
Tkinter似乎是與tcl語(yǔ)言同時(shí)發(fā)展起來(lái)的一種界面庫(kù)。tkinter是python的配備的標(biāo)準(zhǔn)gui庫(kù),也是opensource的產(chǎn)物。 Tkinter可用于windows/Linux/unix/macintosh操作系統(tǒng),而且顯示風(fēng)格是本地化的。Tkinter用起來(lái)非常簡(jiǎn)單,python自帶的IDLE就是采用它寫的。除此外,tkinter的擴(kuò)展集pmw和Tix功能上都要相對(duì)它強(qiáng)大,但tkinter卻是最基本的。我認(rèn)為,在用python做gui開發(fā),tkinter是最基本的知識(shí),所以這個(gè)環(huán)節(jié)是必須要學(xué)習(xí)的。你或許在以后的開發(fā)中并不常用tkinter,但是一些小型的應(yīng)用上面,他還是很有用的,而且開發(fā)速度也很快。
2、WxPython
WxWidgets應(yīng)該算是近幾年了比較流行的GUI跨平臺(tái)開發(fā)技術(shù)了。wxWidgets有不同的版本應(yīng)用,有c 的,也有basic的,現(xiàn)在在 python上面也有較好的移植。wxpython的功能上面要強(qiáng)于tkinter,她提供了超過(guò)200個(gè)類,面向?qū)ο蟮木幊田L(fēng)格,設(shè)計(jì)的框架類似于 MFC。對(duì)于大型GUI應(yīng)用上面,wxPython還是具有很強(qiáng)的優(yōu)勢(shì)的。boa constructor可以幫助我們快速可視地構(gòu)建wxwidgets界面。
3、PyQT
Qt同樣是一種開源的GUI庫(kù),Qt的類庫(kù)大約在300多個(gè),函數(shù)大約在5700多個(gè)。Qt同樣適合于大型應(yīng)用,由它自帶的qt designer可以讓我們輕松來(lái)構(gòu)建界面元素。
4、pyGtk
Gtk是linux下Gnome的核心開發(fā)庫(kù)了。功能上面非常齊全。值得說(shuō)明的是,在windows平臺(tái)下gtk的顯示風(fēng)格并不是特別本地化。不過(guò)他帶的glade的界面設(shè)計(jì)器還是可以幫你省不少事的。
5、Jython
嘗試過(guò)用python訪問(wèn)Java類庫(kù)嗎,那么就用jython吧。jython其實(shí)可以認(rèn)為是另外一個(gè)python開發(fā)環(huán)境,基于java的,但是大多數(shù)的CPython調(diào)用jython下還是可以的。你可以在jython環(huán)境下像使用java一樣來(lái)通過(guò)python的語(yǔ)法來(lái)調(diào)用java語(yǔ)言,真的很酷。
6、MFC
Windows Pywin32允許你像VC一樣的形式來(lái)使用PYTHON開發(fā)win32應(yīng)用。代碼風(fēng)格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過(guò)程在python下,那么這就是一個(gè)不錯(cuò)的選擇。
7、PythonCard
PythonCard其實(shí)是對(duì)wxPython的再封裝。不過(guò)封裝的更加簡(jiǎn)單,使用起來(lái)覺(jué)得比wxPython更直觀,也更簡(jiǎn)單化了。
8、Dabo
仍是一個(gè)基于wxpython的再封裝庫(kù),沒(méi)用過(guò),不太了解。它提供數(shù)據(jù)庫(kù)訪問(wèn),商業(yè)邏輯以及用戶界面。
9、AnyGui
通過(guò)底層的api來(lái)訪問(wèn)其它工具集,像tkinter,wxpython和qt.具體也沒(méi)怎么用過(guò)。
10、WPY
MFC風(fēng)格的Gui開發(fā)庫(kù),代碼風(fēng)格也類似于MFC,僅管如此,你依舊可以使用這個(gè)庫(kù)來(lái)開發(fā)GUI應(yīng)用,而不用擔(dān)心平臺(tái)移植的問(wèn)題。她同樣是一個(gè)跨平臺(tái)的庫(kù)。
11、IronPython
如果你要想開發(fā).net下面的應(yīng)用的話,那么IronPython就是你的選擇,與jython有點(diǎn)類似,他同樣支持標(biāo)準(zhǔn)的python模塊,但同樣增加了對(duì).net庫(kù)的支持。你也可以理解為他是另一個(gè)python開發(fā)環(huán)境。你可以非常方便地使用python語(yǔ)法進(jìn)行.net應(yīng)用的開發(fā),這一點(diǎn)聽起來(lái)真的挺有意思。
總之,介紹了這么多,我個(gè)人意見(jiàn)是,如果你是java用戶,那么你就用jython吧,除了可以享受python的模塊功能及語(yǔ)法外,你可以找到許多 java的影子;如果你是.net用戶,那么就用iron python吧。如果你對(duì)Visual C 很熟悉,那么你可以使用MFC,WPY或是wxPython,當(dāng)然我更建議wxPython了。當(dāng)然,我認(rèn)為對(duì)于tkinter是每一個(gè)原來(lái)搞C的人都應(yīng)該了解和學(xué)習(xí)的GUI庫(kù),因?yàn)樗茌p便,小型應(yīng)用就可以使用她來(lái)搞定,而對(duì)于較大型應(yīng)用可以采用pyGtk,pyQt,WxPython或 PythonCard來(lái)搞定,這樣的話,既可以注重知識(shí)的銜接性,也可以快速進(jìn)行軟體的開發(fā)了。
相關(guān)文章
python矩陣基本運(yùn)算的實(shí)現(xiàn)
本文主要介紹了python?矩陣的基本運(yùn)算,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Jupyter Notebook添加代碼自動(dòng)補(bǔ)全功能的實(shí)現(xiàn)
這篇文章主要介紹了Jupyter Notebook添加代碼自動(dòng)補(bǔ)全功能的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01使用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-02-02Python 遠(yuǎn)程開關(guān)機(jī)的方法
這篇文章主要介紹了Python 遠(yuǎn)程開關(guān)機(jī)的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11使用Python將數(shù)組的元素導(dǎo)出到變量中(unpacking)
最近工作中遇到一個(gè)問(wèn)題,需要利用Python將數(shù)組(list)或元組(tuple)中的元素導(dǎo)出到N個(gè)變量中,現(xiàn)在將我實(shí)現(xiàn)的方法分享給大家,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。2016-10-10pytest多進(jìn)程或多線程執(zhí)行測(cè)試實(shí)例
這篇文章介紹了pytest多進(jìn)程或多線程執(zhí)行測(cè)試的實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07