python - 如何将子菜单项添加到 wxPython 中的弹出菜单项?
问题描述
我想向现有的弹出菜单项添加一些子菜单项。我找到了几个关于如何为标准菜单创建子菜单的示例,但没有关于为弹出菜单创建子菜单的示例。
我尝试将与标准菜单相同的逻辑应用于弹出菜单,但未能正确执行(同时我在创建带有子菜单的标准菜单时没有问题)。
在下面的部分代码中,如何添加子菜单?
# ...
class ButtonContext(wx.Menu):
def __init__(self, parent):
super(ButtonContext, self).__init__()
self.parent = parent
button_popup = wx.MenuItem(self, wx.ID_ANY, 'test popup')
self.Append(button_popup)
self.Bind(wx.EVT_MENU, self.button_action, button_popup)
def button_action(self, event):
event.Skip()
# ...
解决方案
这会起作用,实际上弹出菜单是基于wx.Menu
类的,所以逻辑和行为是相同的
class ButtonContext(wx.Menu):
def __init__(self, parent):
super(ButtonContext, self).__init__()
self.parent = parent
button_popup = wx.MenuItem(self, wx.ID_ANY, 'test popup')
submenu_popup = wx.Menu()
submenu_button_popup = wx.MenuItem(self, wx.ID_ANY, 'test submenu popup')
submenu_popup.Append(submenu_button_popup)
self.AppendSubMenu(submenu_popup, "submenu")
self.Append(button_popup)
self.Bind(wx.EVT_MENU, self.button_action, button_popup)
推荐阅读
- c# - 如何在场景之间保留对象的完整状态?
- php - 如何从表中获取随机行值并将其存储在要单独调用的数组中
- algorithm - 什么是适合用道岔表示铁路的数据结构?
- c# - 使用 Selenium 单击多行单选按钮
- android - 如何通知用户 Play 商店中的当前应用尚未发布并且有新应用可用?
- python - 如何在 docker 中为 python cli 应用程序发送文件作为参数?
- javascript - 孩子在反应父母中输入动作
- c# - 是否有类似于用于 FTP 连接的 C# 连接字符串的东西?
- prolog - Prolog reverse/2 列表输出格式
- javascript - $uid 节点如何处理 firebase-realtime-database 规则?