2012-05-06 19 views
0

此源代码添加自定义的艺术工具栏

class MyToolBar(wx.ToolBar): 
    def AddTool2(self, id, shortHelp = '', longHelp = ''): 
    global TB_SIZE 
    try: 
     ArtId = ArtMap.get(id) 
     Ico = wx.ArtProvider.GetBitmap(ArtId, wx.ART_TOOLBAR, TB_SIZE) 
     self.AddSimpleTool(id, Ico, shortHelp, longHelp) 
    except StandardError: 
     print('Something wrong, maybe wrong id') 

Class MyFrame(wx.Frame): 
    def __init__(self, parent, *args, **kwargs): 
    wx.Frame.__init__(self, parent, *args, **kwargs) 

    ToolBar = MyToolBar(self) 
    ToolBar.AddTool2(wx.ID_NEW, 'New', 'Creates new file') 
    self.SetToolBar(ToolBar) 
    self.GetToolBar().Realize() 


ArtMap = { wx.ID_NEW : wx.ART_NEW, 
      } 
ID_BOUNCE = wx.NewId() 
TB_SIZE = wx.Size(16,16) 

app = wx.app() 
frame = MyFrame(None, -1, 'MyFrame', (0,0)) 
app.MainLoop() 

作品以及添加工具工具栏时,该工具有一个wx.ART。但是,如何添加一个没有wx.ART或没有wx.ART的新工具,这个工具可以很好地代表ID_BOUNCE,其中工具Bounce被假定为在框架中弹起一个球?

在此先感谢。

回答

1

wx.ToolBarAddLabelTool方法与位图参数。
zetcode处查找示例。

+0

解决方案问题如何?如果我使用wx.ART_SUMTHIN,它会自动显示正确的大小。 –

+1

我不知道常数,但关于大小,我建议你或者提供正确大小的位图,或者给出['SetSize'](http://wxpython.org/docs/api/wx.Bitmap-class.html #SetSize)位图的方法一试。 – phineas

+0

你一定要创建合适大小的位图。当然wxPython的内置艺术将有几种尺寸可供选择。 –