分类: Python/Ruby
2013-01-02 20:02:36
详细请见官方新手指南:%20Started#Getting_started_with_wxPython
今晚无事,研究下wxpython
MyNote:
GUI = 一个app+n个frame
所有可视控件 (buttons, menus, etc)都由wx.Window衍生,这和平常人们想的不一致。
GUI的布局:手动设置控件的pos参数 手动设置pos及常见control控件使用.txt ,或者 使用wxSizers类 来布局(创建sizer类-->调用add-->setsizer-->setautolayout-->fit),如下
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.buttons = []
for i in range(0, 6):
self.buttons.append(wx.Button(self, -1, "Button &"+str(i)))
self.sizer2.Add(self.buttons[i], 1, wx.EXPAND)
# Use some sizers to see layout options
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.control, 1, wx.EXPAND)
self.sizer.Add(self.sizer2, 0, wx.EXPAND)
#Layout sizers
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
文本框control下面使用sizer增加了几个按钮.txt
GUI中事件(event)和方法的绑定:frame实例.Bind(XXXXX的某个事件[wx.EVT_???], 被关联的方法函数, 实例 XXXXX)
最后复习了继承类的使用,就是wxpython继承类实例后,都会在__init___中来个被继承类初始化参数是self。这个和pygtk这种几乎不适用继承的gui不同,有点不适应,看来pygtk程序写得太多了。
1class ExamplePanel(wx.Panel):
2 def __init__(self, parent):
3 wx.Panel.__init__(self, parent)#
parent由下文知parent=None
。。。。。。。。。。。。。
52 app = wx.App(False)
53 frame = wx.Frame(None)
54 panel = ExamplePanel(frame)
55 frame.Show()
56 app.MainLoop()