wxPython wx.ToolBar中的SetDropdownMenu()函数
在这篇文章中,我们将学习与wxPython的wx.ToolBar类相关的SetDropdownMenu()函数。SetDropdownMenu()函数为给定的工具设置下拉菜单。当不再需要时,工具本身会删除该菜单。只在GTK+和MSW下支持。如果你在你的程序中定义了一个EVT_TOOL_DROPDOWN()处理程序,你必须从它那里调用wx.Event.Skip,否则菜单将不会被显示。
语法 。
wx.ToolBar.SetDropdownMenu()
参数 。
参数 | 输入类型 | 描述 |
---|---|---|
id | int | 有关工具的ID,与传递给AddTool的一样。 |
menu | wx.Menu | 用于设置特定工具的菜单。 |
返回类型 。
bool
代码实例1 。
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
fileMenu = wx.Menu()
fileItem = fileMenu.Append(21, 'Menu Item1', 'Item 1')
fileItem1 = fileMenu.Append(22, 'Menu Item1', 'Item 1')
fileItem2 = fileMenu.Append(23, 'Menu Item1', 'Item 1')
self.toolbar = self.CreateToolBar()
td = self.toolbar.AddTool(1, '', wx.Bitmap('menu.png'), kind = wx.ITEM_DROPDOWN)
# set dropdown menu with tool id 1
self.toolbar.SetDropdownMenu(id = 1, menu = fileMenu)
self.toolbar.Realize()
self.SetSize((350, 250))
self.SetTitle('Menu tool')
self.Centre()
def OnQuit(self, e):
self.Close()
def main():
app = wx.App()
ex = Example(None)
ex.Show()
app.MainLoop()
if __name__ == '__main__':
main()
输出:
代码示例2 。
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
self.locale = wx.Locale(wx.LANGUAGE_ENGLISH)
self.toolbar = self.CreateToolBar()
td = self.toolbar.AddTool(1, 'right', wx.Bitmap('right.png'))
self.toolbar.Realize()
self.Bind(wx.EVT_TOOL, self.OnOne, td)
self.SetSize((350, 250))
self.SetTitle('Undo redo')
self.Centre()
def OnOne(self, e):
# INSERT A DROPDOWN TOOL IN TOOLBAR
self.toolbar.InsertTool(pos = 1, toolId = 2, label ='new', bitmap = wx.Bitmap('menu.png'), kind = wx.ITEM_DROPDOWN)
# MENU TO BE ADDED TO TOOL
fileMenu = wx.Menu()
fileItem = fileMenu.Append(21, 'Menu Item1', 'Item 1')
fileItem1 = fileMenu.Append(22, 'Menu Item1', 'Item 1')
fileItem2 = fileMenu.Append(23, 'Menu Item1', 'Item 1')
# SET DROPDOWN MENU
self.toolbar.SetDropdownMenu(id = 2, menu = fileMenu)
# Realize() called to finalize new added tools
self.toolbar.Realize()
def OnQuit(self, e):
self.Close()
def main():
app = wx.App()
ex = Example(None)
ex.Show()
app.MainLoop()
if __name__ == '__main__':
main()
输出:
点击勾选工具前:
点击勾选工具后: