wxPython – Agregar submenú en Menú

En este artículo vamos a aprender cómo podemos agregar un submenú a un elemento de menú dentro de un menú presente en la barra de menú. En esto, usamos la función AppendMenu() en lugar de solo usar Append().

Pasos:
1. Cree una MenuBar en el marco usando el constructor MenuBar().
2. Agregar menú a la barra de menú.
3. Cree wx.Menu para Menuitem.
4. Agregue el menú usando la función ApendMenu().

Sintaxis:

wx.Menu.AppendMenu(self, id, subMenu, helpString)

Parámetros de AppendMenu():

Parámetro Tipo de entrada Descripción
identificación En t El identificador del elemento del menú.
artículo cuerda la string que aparecerá en el elemento del menú;
submenú wx.Menú una instancia de FlatMenu, el submenú para agregar,
string de ayuda En t una string de ayuda opcional asociada con el elemento. De forma predeterminada, el controlador del evento EVT_FLAT_MENU_ITEM_MOUSE_OVER muestra esta string en la línea de estado.

Ejemplo de código:

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()

Producción :

Publicación traducida automáticamente

Artículo escrito por RahulSabharwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *