Hola! puedes acceder al Label de MenuItem de la siguiente manera:
def prueba1(self, event): print('prueba1 event') id_selected = event.GetId() # capturamos el id del MenuItem print("Pulsado submenú de Paises") menu = event.GetEventObject() # Capturamos el Menu menuItem = menu.FindItemById(id_selected) print(menuItem.GetLabel()) Luego aquí puedes jugar para conseguir el numero que vaya relacionado! espero que te ayude! un saludo El sáb., 9 may. 2020 a las 11:39, Héctor J. Benítez Corredera (< facturasxebo...@gmail.com>) escribió: > Buenos días. > > > > Quisiera consultarles un problema que estoy teniendo con un menú dinámico > en wxpython. > > > > Estoy usando wxpython 4.0.3 y Python 3.7. > > > > Bien mi problema es que me gustaría obtener cuando elijo un item del menú > que rango es por ejemplo: > > > > [“España”, “Italia”, “Portugal”] > > > > Bien si elijo España me gustaría que me devolviese 0 y así sucesivamente. > > > > Es un popup dinámico ya que la información varia al ser obtenida de > internet. > > > > Pongo un ejemplo de lo que tengo echo: > > > > > > def menu_accion(self): > > lista1a = ["España", "Italia", "Portugal"] > > lista1b = ["100", "200", "300"] > > lista2a = ["Gato", "Perro", "Caballo"] > > lista2b = ["100", "200", "300"] > > self.Menu_Principal = wx.Menu() > > self.Sub_1 = wx.Menu() > > for i in range(0, len(lista1b)): > > item = "item_" + str(i) > > Menu_ID = i > > nombre_item = lista1a[i] > > numero_item = lista1b[i] > > disparador = self.prueba1 > > > > Menu_ID = > self.Sub_1.Append(wx.ID_ANY, "{} {}".format(nombre_item, numero_item)) > > self.Bind(wx.EVT_MENU, > disparador, id=Menu_ID.GetId()) > > > > self.Menu_Principal.AppendSubMenu(self.Sub_1, > "Paises") > > self.Sub_2 = wx.Menu() > > for z in range(0, len(lista2b)): > > Menu_IDz = z > > nombre_itemz = lista2a[z] > > numero_itemz = lista2b[z] > > disparadorz = self.prueba2 > > > > Menu_IDz = > self.Sub_2.Append(wx.ID_ANY, "{} {}".format(nombre_itemz, numero_itemz)) > > self.Bind(wx.EVT_MENU, > disparadorz, id=Menu_IDz.GetId()) > > > > self.Menu_Principal.AppendSubMenu(self.Sub_2, > "Animales") > > > > > > def mostrar_menu_accion(self,event): > > position = self.Panel.GetPosition() > > self.PopupMenu(self.Menu_Principal,position) > > pass > > > > def prueba1(self, event): > > id_selected = event.GetId() > > print(id_selected) > > print("Pulsado submenú de Paises") > > def prueba2(self, event): > > id_selected = event.GetId() > > print(id_selected) > > print("Pulsado submenú de Animales") > > > > > > Bien cuando elijo España por ejemplo me devuelve esto: > > > > -31998 > > Pulsado submenú de Países > > > > > > Bien haciendo pruebas y por ejemplo cambiando wx.ID_ANY por Menu_ID me da > correctamente que al elegir España es 0 pero se va al def prueba2 > indiferentemente si elegí en el menú países o animales. > > > > La verdad e estado buscando mucho y ya no se si de tanto me e liado y no > se por donde continuar. > > > > Se agradece cualquier ayuda. > > > > Cordiales saludos > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es