Stack Overflow en español Asked by Héctor on August 26, 2021
Me gustaría pedir ayuda con algo que por más que busco y le doy vueltas no consigo hacer. Posiblemente sea fácil la solución pero estoy ofuscado y no doy con la vuelta.
Bien en wxpython tengo una ventana de dialogo la cual deseo que se cierre tanto con un botón dedicado a ello como pulsando escape.
Para ello tengo esto:
self.closeBTN = wx.Button(Panel, wx.ID_ANY, _("&Close"))
self.Bind(wx.EVT_BUTTON, self.onClose, self.closeBTN)
self.Bind(wx.EVT_CHAR_HOOK, self.onEsc)
def onEsc(self, event):
if event.GetKeyCode() == wx.WXK_ESCAPE:
ConfigFileSave()
self.Destroy()
else:
event.Skip()
def onClose(self, event):
ConfigFileSave()
self.Destroy()
Bien esto funciona perfectamente, pero ahora mis preguntas.
1º Seria posible tener ligado las dos acciones a un solo def, algo a si:
Def onPrueba(self, event):
if event.GetKeyCode() == wx.WXK_ESCAPE:
ConfigFileSave()
self.Destroy()
elif >capturar el evento del botón al ser pulsado< == >saber cuando fue pulsado el botón<:
ConfigFileSave()
self.Destroy()
else:
event.Skip()
El planteamiento anterior lo conseguiría si no me equivoco definiendo los eventos a si:
self.Bind(wx.EVT_BUTTON, self.onPrueba, self.closeBTN)
self. closeBTN.Bind(wx.EVT_CHAR_HOOK, self.onPrueba)
2º Hay alguna otra manera de hacer lo que pretendo?
Espero haberme explicado y muchas gracias de antemano.
Cordiales saludos
Bueno pues en la lista de Python en Español me contestaron.
https://mail.python.org/mailman/listinfo/python-es
Dejo aquí una posible solución y sigo abierto a saber si hubiese otras formas de hacerlo.
self.Bind(wx.EVT_BUTTON, self.onClose, self.closeBTN)
self.Bind(wx.EVT_CHAR_HOOK, self.onClose)
def onClose(self, event):
if event.GetEventType() == 10012:
ConfigFileSave()
self.Destroy()
else:
keyCode = event.GetKeyCode()
if keyCode == wx.WXK_ESCAPE:
ConfigFileSave()
self.Destroy()
event.Skip()
Answered by Héctor on August 26, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP