[Python-es] Ayuda con un menú dinámico en wxpython
Héctor J. Benítez Corredera
facturasxebolax en gmail.com
Sab Mayo 9 05:39:00 EDT 2020
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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20200509/c1f0f43c/attachment.html>
Más información sobre la lista de distribución Python-es