wxPython是一個Python的GUI庫,詳細參看:www.wxpython.org
wxPython基於wxWidgets,它是一個跨平臺的、使用C++語言完成的UI庫,詳細但看:www.wxwidgets.org
wxPython不僅僅是對wxWidgets的封裝,它還使用wxPython完成了部分組件的開發。
要想使用wxPython需要安裝python和wxPython,相關安裝方法請大家參看對應的文檔,由於我使用的是Mac Leopard,這兩個軟件已經預先安裝了,所以我就不需要在安裝。
我使用的編輯器是TextMate,當讓vi,emacs,jedit都可以,爲了方便我使用了TextMate,非Mac用戶可以使用vi,可能比TextMate還要強大。
第一個簡單的wx應用程序
逐行解釋
#!/usr/bin/env python
這被稱爲shebang,用來告訴python解析器的位置,如果這個文件被設定了執行權限,那麼通過 % spare.py 可以直接執行這個文件。
"""Spare.py is a starting point for a wxPython program."""
這被稱爲這個模塊的docstring,相當於這個模塊的說明文檔,方便其他開發人員閱讀,可以使用如下的方式獲得:
>>> import spare
>>> print spare.__doc__
Spare.py is a starting point for simple wxPython programs.
>>>
class Frame(wx.Frame):
pass
聲明瞭wx.Frame的一個子類,該類表示了一個Frame。
這裏的Frame比較簡單,只是一個空白窗口,如果需要複雜的Frame,可以在這個類中完成。
class App(wx.App):
def OnInit(self):
self.frame = Frame(parent=None, title="Spare")
self.frame.Show()
self.SetTopWindow(self.frame)
return True
聲明瞭一個wx.App的子類,實現了OnInit方法,這個方法會被wx自動調用,以此來顯示我們的應用程序,其中的frame對象爲上述我們自定義的Frame子類。SetTopWindow方法是一個可選方法,用來告訴wx應用程序那個Frame是主Frame。
if __name__ == '__main__':
這用來判斷這個文件是作爲應用程序直接執行的還是被引用的。
如果被引用,那麼__name__變量的內容爲文件的名字,可以使用如下的代碼查看。
>>> import spare
>>> spare.__name__
'spare'
>>>