下面看一下关于创建工具栏,状态栏和菜单的方法,看下面一个例子:
import wx
class ToolBarFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,'ToolBar',size=(300,200))
panel=wx.Panel(self)
panel.SetBackgroundColour('white')
statusBar=self.CreateStatusBar()
toolBar=self.CreateToolBar()
toolBar.AddSimpleTool(wx.NewId(),wx.Bitmap('Toolbar.bmp'),"New","long help for 'New'")
toolBar.Realize()
menuBar=wx.MenuBar()
menu1=wx.Menu()
menuBar.Append(menu1,"&File")
menu2=wx.Menu()
menu2.Append(wx.NewId(),"&Copy","Copy in status bar")
menu2.Append(wx.NewId(),"&Cut","")
menu2.Append(wx.NewId(),"Paste","")
menu2.AppendSeparator()
menu2.Append(wx.NewId(),"&Options...","Display Option")
menuBar.Append(menu2,"&Edit")
self.SetMenuBar(menuBar)
if __name__=='__main__':
app=wx.PySimpleApp()
frame=ToolBarFrame(parent=None,id=-1)
frame.Show()
app.MainLoop()
运行结果如下:
首先是StatusBar的创建:statusBar=self.CreateStatusBar() 这里用到了Frame里的一个方法,CreateStatusBar(),它就默认在当前的frame下面创建一个默认的和frame边缘相符的状态栏,这是非常简单的,一句话搞定。当然wx为我们提供了一个专门的ToolBar类,和其对应的很多方法,比如Create(),这里就先不介绍了。StatusBar就是显示一些别的应用提供的文本,这里文本的大小等属性由系统默认。
下面是ToolBar的创建。
toolBar=self.CreateToolBar()
toolBar.AddSimpleTool(wx.NewId(),wx.Bitmap('Toolbar.bmp'),"New","long help for 'New'")
toolBar.Realize()
第一句还是调用了Frame里的一个方法CreateToolBar,返回一个ToolBar对象,也是非常的简单一种方法,下面是往这个ToolBar上加载我们要的图标,AddSimpleTool的用法可以通过help来帮助:AddSimpleTool(self, id, bitmap, shortHelpString='', longHelpString='', isToggle=0) unbound wx._controls.ToolBar method
Old style method to add a tool to the toolbar.
其中的一个参数longHelpString就是要显示到状态栏的帮助信息。最后Realize()就是要让这个工具栏显示在窗口上。
最后剩下的就是创建菜单了。
MenuBar()是创建菜单栏,也就是菜单要放置的地方。Menu()是创建菜单,Append()是把菜单加到菜单栏的方法,或者是把子菜单加到菜单上。self.SetMenuBar(menuBar)是调用了Frame的一个方法,来放置菜单栏,它会自动放置到合适的位置。