mmmm mira ver si te puede valer lo siguiente:
import wx
class Test(wx.Frame):
def __init__(self):
super().__init__(None, -1, title='Event Test', size=(200, 200))
panel = wx.Panel(self)
btnSalir = wx.Button(panel, wx.ID_CANCEL, 'salir')
btnSalir.Bind(wx.EVT_BUTTON, self.OnKeyUP)
self.Bind(wx.EVT_CLOSE, self.onExit)
# panel.SetFocus()
self.Bind(wx.EVT_CHAR_HOOK, self.OnKeyUP)
def OnKeyUP(self, event):
if event.GetEventType() == 10012:
# 10012 wx.EVT_BUTTON; 10055-> wx.EVT_CHAT_HOOK
self.close()
else:
print("KEY UP!")
keyCode = event.GetKeyCode()
if keyCode == wx.WXK_ESCAPE:
self.Destroy()
event.Skip()
def onExit(self, event):
print('onExit')
self.Destroy()
class App(wx.App):
"""Application class."""
def OnInit(self):
self.frame = Test()
self.frame.Show()
self.SetTopWindow(self.frame)
return True
if __name__ == '__main__':
app = App()
app.MainLoop()
El mar., 21 jul. 2020 a las 12:54, Héctor J. Benítez Corredera (<
[email protected]>) escribió:
> Buenas, lo primero gracias por contestar.
>
>
>
> Pero culpa mía al no comentar que es una clase construida desde cero como
> una ventana de dialogo.
>
>
>
> Bien dicho dialogo no es predefinido de los que trae wxpython por lo que
> tiene un botón cerrar y más cosas.
>
>
>
> Mi intención es contener tanto la llamada al Escape como la llamada al
> botón en la misma definición.
>
>
>
> Es un poco raro por que como lo tengo cada llamada a su definición
> funciona todo perfectamente pero por motivos necesarios a quien va dirigido
> el proyecto es necesario que este en la misma definición.
>
>
>
> Lo que no entiendo es capturar el evento de botón pulsado y al igual que
> con evento.GetCode() capturo la tecla algo parecido para cuando sea pulsado
> el botón.
>
>
>
>
>
> Saludos y gracias otra vez.
>
> El 21/07/2020 a las 12:27, PeRy escribió:
>
> Hola compañero, si es un *wx.Dialog* se haría muy fácilmente con un
> wx.ID_CANCEL en el id del boton Salir de esta manera: Cuando
> presionaas ESCAPE, wx buscaria el ID wx.CANCEL y en caso de que existiera
> enviaria wx.EVT_BUTTON al boton con esa id (wx.ID_CANCEL).
>
>
> _______________________________________________
> Python-es mailing
> [email protected]https://mail.python.org/mailman/listinfo/python-es
>
> _______________________________________________
> Python-es mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-es
>
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es