Hola, muchísimas gracias.

La verdad no conocía wx.EVT_ACTIVATE y me sirvió correctamente para lo que quiero hacer.

Muchísimas gracias por su ejemplo.

Cordiales saludos

El 12/09/2020 a las 16:02, PeRy escribió:
Hola compañero, en este caso debes usar EVT_ACTIVATE,
te pongo un ejemplo, espero que te sirva, un saludo! :

import wx
class MiVentana(wx.Frame):
def __init__(self, *args, **kwargs):
super().__init__(parent=None, title='Mi Ventana', *args, **kwargs)
        panel = wx.Panel(self, wx.ID_ANY)
        etiqueta = wx.StaticText(panel, wx.ID_ANY, 'Etiqueta')
        btnSalir = wx.Button(panel, wx.ID_EXIT)
        btnSalir.Bind(wx.EVT_BUTTON, self.onSalir)
        sizer_panel = wx.BoxSizer(wx.VERTICAL)
        sizer_panel.Add(etiqueta, 0, wx.ALL, 5)
        sizer_panel.Add(btnSalir, 0, wx.ALL, 5)
        panel.SetSizer(sizer_panel)
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 0, wx.EXPAND)
self.SetSizerAndFit(sizer)
self.Show(True)
self.Bind(wx.EVT_ACTIVATE, self.onPierdeFoco)
print(wx.Window.FindFocus())
def onSalir(self, event):
print("evento onSalir")
self.Close(True)
# self.Destroy()
def onPierdeFoco(self, event):
print('Ha perdido el foco')
        event.Skip()
self.Close()
class Aplicacion(wx.App):
def __init__(self, *args, **keywords):
super().__init__(redirect=False)
def OnInit(self):
self.SetAppName("Prueba Focus")
        ventana = MiVentana()
self.SetTopWindow(ventana)
# frame = wx.Frame(parent=None, title = 'bare')
# frame.Show()
return True
def InitLocale(self): # Para prevenir el fallo de locales con las ultimas versiones de wxpython https://discuss.wxpython.org/t/what-is-wxpython-doing-to-the-locale-to-makes-pandas-crash/34606/10
self.ResetLocale()
import locale
        lang, enc = locale.getdefaultlocale()
self._initial_locale = wx.Locale(lang, lang[:2], lang)
        locale.setlocale(locale.LC_ALL, lang)
if __name__ == '__main__':
    app = Aplicacion()
    app.MainLoop()

El sáb., 12 sept. 2020 a las 10:32, Héctor J. Benítez Corredera (<facturasxebo...@gmail.com <mailto:facturasxebo...@gmail.com>>) escribió:

    Buenas me gustaría solicitar ayuda con el problema de enfocar y
    saber cuando se pierde el foco en una ventana en Windows.

    Bien estoy trabajando con wxpython y mi problema es que no consigo
    saber cuando se pierde el foco en la ventana de la aplicación ya
    que debería desencadenar el cierre de ella si el usuario deja de
    tenerla en primer plano.

    Bien al contener mi panel varios widgets no consigo que
    wx.EVT_KILL_FOCUS me sirva.

    E estado leyendo por stackoverflow.com <http://stackoverflow.com>
    y una de mis soluciones podría ser wx.Window.FindFocus(), pero no
    encuentro ningún ejemplo practico el cual me ayude a entenderlo.

    Alguien sabe de algún repo, pagina que contenga algún ejemplo
    sobre el tema o tiene la amabilidad de plasmarme algo sencillito.

    Muchas gracias de antemano.

    Cordiales saludos

    _______________________________________________
    Python-es mailing list
    Python-es@python.org <mailto: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
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a