轉-用python進行GUI開發的選擇

From: http://www.91linux.com/html/article/program/python/20080101/9439.html
Python最大的特色就在於她的快速開發功能。做爲一種 膠水型語言,python幾乎能夠滲透在咱們編程過程當中的各個領域。這裏我簡單介紹一下用python進行gui開發的一些選擇。
1.Tkinter
Tkinter彷佛是與tcl語言同時發展起來的一種界面庫。tkinter是python的配備的標準gui庫,也是opensource的產物。Tkinter可用於windows/linux/unix/macintosh操做系統,並且顯示風格是本地化的。Tkinter用起來很是簡單,python自帶的IDLE就是採用它寫的。除此外,tkinter的擴展集pmw和Tix功能上都要相對它強大,但tkinter倒是最基本的。我認爲,在 用python作gui開發,tkinter是最基本的知識,因此這個環節是必需要學習的。你或許在之後的開發中並不經常使用tkinter,可是一些小型的應用上面,他仍是頗有用的,並且開發速度也很快。
2.WxPython
WxWidgets應該算是近幾年了比較流行的GUI跨平臺開發技術了。wxWidgets有不一樣的版本應用,有c++的,也有basic的,如今在python上面也有較好的移植。wxpython的功能上面要強於tkinter,她提供了超過200個類,面向對象的編程風格,設計的框架相似於MFC 。對於大型GUI應用上面,wxPython仍是具備很強的優點的。boa constructor能夠幫助咱們快速可視地構建wxwidgets界面。
3.PyQT
Qt一樣是一種開源的GUI庫,Qt的類庫大約在300多個,函數大約在5700多個。Qt一樣適合於大型應用,由它自帶的qt designer可讓咱們輕鬆來構建界面元素。
4.pyGtk
Gtk是linux下Gnome的核心開發庫了。功能上面很是齊全。值得說明的是,在windows平臺下gtk的顯示風格並非特別本地化。不過他帶的glade的界面設計器仍是能夠幫你省很多事的。
5.Jython
嘗試過用python訪問java類庫嗎,那麼就用jython吧。jython其實能夠認爲是另一個python開發環境,基於java的,可是大多數的CPython調用jython下仍是能夠的。你能夠在jython環境下像使用java同樣來經過python的語法來調用java語言,真的很酷。
6.MFC
Windows Pywin32容許你像VC同樣的形式來使用PYTHON開發win32應用。代碼風格能夠相似win32 sdk,也能夠相似MFC,由你選擇。若是你仍不放棄vc同樣的代碼過程在python下,那麼這就是一個不錯的選擇。
7.PythonCard
PythonCard實際上是對wxPython的再封裝。不過封裝的更加簡單,使用起來以爲比wxPython更直觀,也更簡單化了。
8.Dabo
還是一個基於wxpython的再封裝庫,沒用過,不太瞭解。它提供數據庫訪問,商業邏輯以及用戶界面。
9.AnyGui
經過底層的api來訪問其它工具集,像tkinter,wxpython和qt.具體也沒怎麼用過。
10.WPY
MFC風格的Gui開發庫,代碼風格也相似於MFC,僅管如此,你依舊可使用這個庫來開發GUI應用,而不用擔憂平臺移植的問題。她一樣是一個跨平臺的庫。
11.IronPython
若是你要想開發.net下面的應用的話,那麼IronPython就是你的選擇,與jython有點相似,他一樣支持標準的python模塊,但一樣增長了對.net庫的支持。你也能夠理解爲他是另外一個python開發環境。你能夠很是方便地使用python語法進行.net應用的開發,這一點聽起來真的挺有意思。
總之,介紹了這麼多,我我的意見是,若是你是java用戶,那麼你就用jython吧,除了能夠享受python的模塊功能及語法外,你能夠找到許多java的影子;若是你是.net用戶,那麼就用iron python吧。若是你對Visual C++很熟悉,那麼你可使用MFC,WPY或是wxPython,固然我更建議wxPython了。 固然,我認爲對於tkinter是每個原來搞C的人都應該瞭解和學習的GUI庫,由於她很輕便,小型應用就可使用她來搞定,而對於較大型應用能夠採用pyGtk,pyQt,WxPython或PythonCard來搞定,這樣的話,既能夠注重知識的銜接性,也能夠快速進行軟體的開發了。html

http://wiki.wxpython.org/Choosing%20wxPython%20over%20Tkinter
http://wiki.wxpython.org/ComparingWxPythonAndPyQtjava

相關文章
相關標籤/搜索