wxPython – 在菜单中添加子菜单
在这篇文章中,我们将学习如何在MenuBar上的Menuitem中添加子菜单。在此,我们使用AppendMenu()函数,而不是仅仅使用Append()。
步骤:
1.使用MenuBar()构造函数在框架中创建一个MenuBar。
2.在菜单栏中添加菜单。
3.为Menuitem创建wx.Menu。
4.使用ApendMenu()函数添加菜单。
语法:
wx.Menu.AppendMenu(self, id, subMenu, helpString)
AppendMenu()的参数。
参数 | 输入类型 | 参数描述 |
---|---|---|
id | int | 菜单项的标识符。 |
item | string | 出现在菜单项上的字符串。 |
subMenu | wx.Menu | 一个FlatMenu的实例,要追加的子菜单。 |
helpString | int | 与该项目相关的可选帮助字符串。默认情况下,EVT_FLAT_MENU_ITEM_MOUSE_OVER事件的处理程序会在状态行显示这个字符串。 |
代码示例。
import wx
class Example(wx.Frame):
def __init__(self, *args, **kwargs):
super(Example, self).__init__(*args, **kwargs)
self.InitUI()
def InitUI(self):
menubar = wx.MenuBar()
fileMenu = wx.Menu()
# submenu for menuitem
imp = wx.Menu()
imp.Append(wx.ID_ANY, 'SubMenu 1')
imp.Append(wx.ID_ANY, 'SubMenu 2')
imp.Append(wx.ID_ANY, 'SubMenu 3')
# append submenu with menuitem
fileMenu.AppendMenu(wx.ID_ANY, 'MenuItem', imp)
menubar.Append(fileMenu, '&Menu')
self.SetMenuBar(menubar)
self.SetSize((350, 250))
self.SetTitle('Submenu')
self.Centre()
def OnQuit(self, e):
self.Close()
def main():
app = wx.App()
ex = Example(None)
ex.Show()
app.MainLoop()
if __name__ == '__main__':
main()
输出 :