首页 > 代码库 > wxpython 创建工具栏和菜单栏

wxpython 创建工具栏和菜单栏

下面看一下关于创建工具栏,状态栏和菜单的方法,看下面一个例子:

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的一个方法,来放置菜单栏,它会自动放置到合适的位置。

wxpython 创建工具栏和菜单栏