2012-05-06 17 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的內置藝術將有幾種尺寸可供選擇。 –