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