我正在使用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格式创建图像。有没有其他方法可以做到这一点?我希望有人可以告诉我它是如何工作的,或者指出我的任何文档
答案 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