下面是显示一个工具栏的例子,里面用到了下拉工具按钮,可以下拉子菜单。
class ToolBarTest(wx.Frame):
def __init__(self, parent, ID, title):
w, h = 300, 400
wx.Frame.__init__(self, parent, ID, title,
wx.DefaultPosition, wx.Size(w, h))
TBFLAGS = (wx.TB_HORIZONTAL
| wx.NO_BORDER
| wx.TB_FLAT
# | wx.TB_TEXT
# | wx.TB_HORZ_LAYOUT
)
#tb = self.CreateToolBar(TBFLAGS)
tb = wx.ToolBar(self)
self.ToolBar = tb
tsize = (24, 24)
new_bmp = wx.ArtProvider.GetBitmap(wx.ART_NEW, wx.ART_TOOLBAR, tsize)
open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, tsize)
copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR, tsize)
paste_bmp = wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR, tsize)
tb.SetToolBitmapSize(tsize)
# tb.AddTool(10, new_bmp, "New", "Long help for 'New'")
tb.AddTool(10, "New", new_bmp, wx.NullBitmap, wx.ITEM_DROPDOWN, "New", "Long help for 'New'", None)
mn = wx.Menu()
mn.Append(-1,"test1")
mn.Append(-1,"test2")
tb.SetDropdownMenu(10,mn)
# tb.AddTool(20, open_bmp, "Open", "Long help for 'Open'")
tb.AddTool(20, "Open", open_bmp, wx.NullBitmap, wx.ITEM_NORMAL, "Open", "Long help for 'Open'", None)
tb.AddSeparator()
tb.AddTool(30, "Copy", copy_bmp, wx.NullBitmap, wx.ITEM_NORMAL, "Copy", "Long help for 'Copy'", None)
tb.Realize()
MacOS 和 windows 显示效果如下:
macos 下不支持下拉工具按钮。 windows能正常支持。
macos 下可以使用 aui toolbar 来替换实现