代码之家  ›  专栏  ›  技术社区  ›  Hexagon

在wxPython/wxWidgets中添加系统菜单项

  •  0
  • Hexagon  · 技术社区  · 17 年前


    (我说的是在Windows中单击应用程序图标时出现的菜单,即“最小化”、“最大化”、“关闭”等菜单)。

    1 回复  |  直到 17 年前
        1
  •  1
  •   Frank Niessink    17 年前

    我认为wxWidgets/wxPython不允许你操纵系统菜单,除了一些不足以满足你需求的例外情况:

    • style=wx.DEFAULT_FRAME_STYLE & ~wx.SYSTEM_MENU

    • 在Mac OS X上,带有id的菜单项,如 wx.ID_EXIT wx.ID_HELP 被移动到应用程序菜单中。

    我试着把 wx.EVT_MENU_OPEN

    import wx
    
    class Frame(wx.Frame):
        def __init__(self, *args, **kwargs):
            super(Frame, self).__init__(*args, **kwargs)
            self.Bind(wx.EVT_MENU_OPEN, self.onMenuOpen)
    
        def onMenuOpen(self, event):
            print event.GetMenu(), event.GetMenuId()
            event.Skip()
    
    
    app = wx.App(0)
    frame = Frame(None)
    frame.Show()
    app.MainLoop()