开始wxPython编程之路,最終目的是構建一個可视化的開發工具,現在有一個類似的工具BOA,之前試用了一下,但還是不夠完美,自己試著做一下吧,在學習中提高。
GUI組件我選擇wxPython,Python的GUI實現也有好幾種方法,之所以選擇wxPythn是因為它的界面較為美觀,同時支持流行的操作系統(M$win、Linux-GTK、MacOS),算是跨平台吧,還有就是免費、升級更新也較快。
開始吧。先來一個hello world。
#! /usr/bin/env python
import wx
class mywin(wx.Frame):
def __init__(self,title,pos,size):
wx.Frame.__init__(self,None,-1,title,pos,size)
mainclient=wx.Panel(self)
stxt = wx.StaticText(mainclien, label="Hello World,this is wxPython", pos=(12, 10),size=(200, 30))
if __name__=='__main__':
app=wx.PySimpleApp()
win=mywin('Hello wxPython',(100,100),(200,200))
win.Show(True)
app.MainLoop()
這樣就可以生成一個標准窗口。
wx.Frame.__init__()初始化的C語言原型如下
wxFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame")
有一句較為有必要說明
mainclient=wx.Panel(self)
Frame控件初始化後是沒有對它的客戶區進行初始化,如果在它的客戶區添加其它控件,是不能進行定位的,系統會將它自動對齊Frame的客戶區,在這一 個控件上面才可能對其它控件進行定位。這一句就是放置一個Panel控件作為Frame的客戶區頂層容器(暫時這樣叫著吧,找不到很好的詞)。以後需要定位控件則要以它作為父控件。
可能菜單及狀態欄這類控件還是以Frame作為父控件,這個留著到下面處理吧。
python對控件的初始化和控制都是通過函數來實現,這樣一來對於複雜的窗口界面就會讓初界面始化代碼看起來有很多重復語句和臃冗。為了讓代碼看起來更清晰明瞭,會想辦法將架構界面和算法實現的代碼分開。
GUI組件我選擇wxPython,Python的GUI實現也有好幾種方法,之所以選擇wxPythn是因為它的界面較為美觀,同時支持流行的操作系統(M$win、Linux-GTK、MacOS),算是跨平台吧,還有就是免費、升級更新也較快。
開始吧。先來一個hello world。
#! /usr/bin/env python
import wx
class mywin(wx.Frame):
def __init__(self,title,pos,size):
wx.Frame.__init__(self,None,-1,title,pos,size)
mainclient=wx.Panel(self)
stxt = wx.StaticText(mainclien, label="Hello World,this is wxPython", pos=(12, 10),size=(200, 30))
if __name__=='__main__':
app=wx.PySimpleApp()
win=mywin('Hello wxPython',(100,100),(200,200))
win.Show(True)
app.MainLoop()
這樣就可以生成一個標准窗口。
wx.Frame.__init__()初始化的C語言原型如下
wxFrame(wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame")
有一句較為有必要說明
mainclient=wx.Panel(self)
Frame控件初始化後是沒有對它的客戶區進行初始化,如果在它的客戶區添加其它控件,是不能進行定位的,系統會將它自動對齊Frame的客戶區,在這一 個控件上面才可能對其它控件進行定位。這一句就是放置一個Panel控件作為Frame的客戶區頂層容器(暫時這樣叫著吧,找不到很好的詞)。以後需要定位控件則要以它作為父控件。
可能菜單及狀態欄這類控件還是以Frame作為父控件,這個留著到下面處理吧。
python對控件的初始化和控制都是通過函數來實現,這樣一來對於複雜的窗口界面就會讓初界面始化代碼看起來有很多重復語句和臃冗。為了讓代碼看起來更清晰明瞭,會想辦法將架構界面和算法實現的代碼分開。