Tuesday, May 5, 2009

wxPython notice -- 5 steps to create a widget

因為要和M$的window區分,一般python在提到他建立的視窗,都是以widget來替代window。
wxPython撰寫widget的5個步驟:

  1. import wx
    • import哪個library視情形而定,最基本的就是wx,要寫wxPython的話,wx必需是import的第一筆,wxPython之外的library可以混雜使用。
    • 不要再使用舊版本的方式做import的動作,這樣會減慢程式的執行速度。舊版本方式如下:
      • from wxPython import wx
      • from wxPython.wx import *
  2. application object
    • 一個widget程式至少要包含一個application object和一個frame object。
    • class可以視為一種application object,格式:class class_name(attributions)。
    • frame.Show()可以決定frame是不是可以被看見。
      • frame.Show(True)可視
      • frame.Show(False) == frame.Hide() 不可視
  3. initialize method
    • 通常使用OnInit() method來建立frame object。
    • 使用__init__(self)來建立frame object的話記得要先呼叫他,才能接著做其他動作,呼叫的方式:
      • def __init__(self):
      • wx.App.__init__(self)
    • object的建立,必須先initialize才能在程式中正確的使用。
  4. create instance
    • eg. app = class_name()
  5. app.MainLoop()
    • eg. app.MainLoop()
    • 進入程式的main loop,這個我覺得類似C中的int main() {}

1 comment:

Unknown said...

if __name__ == '__main__':
app = hello()
app.MainLoop()

這個if可以判斷,這個python的程式是被當作import使用,還是直接執行,如果是被import的話,程式不需要進入app.MainLoop()裡。