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 (<
facturasxebo...@gmail.com>) 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 
> listPython-es@python.orghttps://mail.python.org/mailman/listinfo/python-es
>
> _______________________________________________
> 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

Responder a