wxpython创建工具箱

时间:2009-11-28 21:58:28

标签: wxpython

我正在使用python编写类似PAINT的应用程序。我是python的新手,我正在使用wxpython进行GUI。我必须为(线,圆等等选项)创建一个工具箱。使用python wiki中的工具栏创建示例。但无法理解addimpletool的工作原理

导入wx

类MyToolBar(wx.Frame):     def init (self,parent,id,title):

     wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(350, 250))
     vbox = wx.BoxSizer(wx.VERTICAL)
     toolbar = wx.ToolBar(self, -1, style=wx.TB_VERTICAL | wx.NO_BORDER)

             toolbar.AddSimpleTool(1,wx.Image('stock_new.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap(),   'New', '')


   class MyApp(wx.App):
      def OnInit(self):
         frame = MyToolBar(None, -1, '')
         frame.Show(True)
         return True

   app = MyApp(0)
   app.MainLoop()

我必须以.png格式创建图像。有没有其他方法可以做到这一点?我希望有人可以告诉我它是如何工作的,或者指出我的任何文档

1 个答案:

答案 0 :(得分:0)

我写了一个实用程序函数来将项目添加到我的工具栏。

def tool_item(window, toolbar, label, func, icon):
    icon = wx.Bitmap('icons/%s' % icon)
    item = toolbar.AddSimpleTool(-1, icon, label)
    if func:
        window.Bind(wx.EVT_TOOL, func, id=item.GetId())
    return item

...

def create_toolbar(self):
    # create toolbar
    toolbar = wx.ToolBar(self, -1, style=wx.HORIZONTAL|wx.TB_FLAT|wx.TB_NODIVIDER)
    toolbar.SetToolBitmapSize((18,18)) # looks better with 16x16 icons

    # add items to toolbar
    tool_item(self, toolbar, 'New Project', self.on_new_project, 'page.png')
    tool_item(self, toolbar, 'Open Project', self.on_open_project, 'folder_page.png')
    toolbar.AddSeparator()
    # (etc...)

    # finish up
    toolbar.Realize()
    toolbar.Fit()
    return toolbar