读书人

wxpython 代码的疑点

发布时间: 2013-01-04 10:04:16 作者: rapoo

wxpython 代码的疑问


# Chapter 1: Getting Started
# Recipe 7: Stock ID's
#
import os
import wx

class MyApp(wx.App):
def OnInit(self):
self.frame = MyFrame(None, title="Stock Id's")
self.SetTopWindow(self.frame)
self.frame.Show()

return True

class MyFrame(wx.Frame):
def __init__(self, parent, id=wx.ID_ANY, title="",
pos=wx.DefaultPosition, size=wx.DefaultSize,
style=wx.DEFAULT_FRAME_STYLE,
name="MyFrame"):
super(MyFrame, self).__init__(parent, id, title,
pos, size, style, name)

# Attributes
self.panel = wx.Panel(self)

# Setup
ok_btn = wx.Button(self.panel, wx.ID_OK)
cancel_btn = wx.Button(self.panel, wx.ID_CANCEL,
pos=(100, 0))

menu_bar = wx.MenuBar()
edit_menu = wx.Menu()
edit_menu.Append(wx.NewId(), "Test")
edit_menu.Append(wx.ID_PREFERENCES)
menu_bar.Append(edit_menu, "Edit")
self.SetMenuBar(menu_bar)

if __name__ == "__main__":
app = MyApp(False)
app.MainLoop()




wxpython 代码的疑问
主要是不明白
ok_btn = wx.Button(self.panel, wx.ID_OK)
cancel_btn = wx.Button(self.panel, wx.ID_CANCEL,
pos=(100, 0))
两句中创建ok_btn , cancel_btn这两个引用的作用?
本来我认为只需有
wx.Button(self.panel, wx.ID_OK)
wx.Button(self.panel, wx.ID_CANCEL,
pos=(100, 0))

这两句就OK的啦,怎么还要多此一举创建ok_btn , cancel_btn这两个引用呢?

还有 menu_bar.Append(edit_menu, "Edit")
Edit的前面加不加&有何区别?

[解决办法]


这个代码是可以不要ok_btn , cancel_btn,不过正常情况下会绑定事件,或者应用到布局里,这时候有个名称才好写代码。&Edit的话,菜单里可以看到E有底线,可以用键盘alt+E操作。

读书人网 >perl python

热点推荐