Fwd: Problema con grab_focus ( )

carlos villa carlosfvo en gmail.com
Lun Jul 24 03:01:43 CEST 2006


por supuesto la idea esque no me deje pasar el siguiente entry o sea
widget creo que me entendio mal, y aqui esta la version sin las
vocales lo siento pero es un estandard de desarrollo que adoptamos
alrrededor de este proyecto igual aqui esta mas claro espero..

si sabe como resolver el problema del grab_focus agradeceria ...

gracias


> def on_txte_mdfcar_grupo_cntdad_usrios_focus_out_event (self, widget,
> data=None):
>
>    self.entry_texto = self.entry.get_text()
>
>    if not self.entry_texto.isdigit():
>      print 'NO digito'
>      dialogo_error(self.wndow , 'El dato debe  ser un Digito')
>      self.entry.grab_focus()







---------- Forwarded message ----------
From: Arnau Sanchez <arnau en ehas.org>
Date: 23-jul-2006 18:29
Subject: Re: [Python-es] Problema con grab_focus ( )
To: La lista de python en castellano <python-es en aditel.org>


Carlos,

Eso de abrir una ventana modal y ejecutar un grab_focus() dentro de un manejador
de "focus-out", así, todo de golpe, no suena muy bien, no es raro que no
funcione... no sólo es que te salga más de una ventana, sino que es muy probable
que la aplicación se cuelgue. Una solución sería mostrar la ventana modal con
show() (no con run()), capturar las señales correspondientes a "response" y
"delete-event", y en el manejador, además de destruir la ventana, darle el foco
del entry.

def response(widget, arg, entry):
        entry.grab_focus()
        widget.destroy()

def on_focus_out(widget, event, entry):
        text = widget.get_text()
        if text.isdigit(): return
        message = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING,
gtk.BUTTONS_OK, "Dato incorrecto")
        message.connect("delete-event", response, entry)
        message.connect("response", response, entry)
        message.show()

Dicho esto, y ya que estamos con el tema, a mi particularmente me molestaría
mucho que una aplicación no me permitiera cambiar el foco (pasar a otra
aplicación, por ejemplo), simplemente porque hay un valor (temporalmente)
incorrecto en un widget. Hay muchas alternativas, una sería que la validación se
hiciera sólo al pasar a otro widget dentro de la misma aplicación. En fin, sólo
es una idea.

Y finalmente una cosa en la que no vale la pena insistir porque ahí cada uno
hace de su capa un sayo, pero... ¿¿realmente no puedes acortar esos nombres de
funciones (sin vocales)?? es realmente duro de leer....

salud!
arnau

carlos villa escribió:
> buenas tardes me urge ayuda estoy trabajando glade - python2.4 me
> explico como funciona tengo el evento
> focus_out_event de un text Entry en el cual valido que lo que inserten
> sea un digito
> self.texto.isdigit() si esto no es un digito entonces me muestra una
> ventana de error
> la cual llamo : dialogo_error(self.wndow_atntccion_mdfcar_grupo, 'El
> dato debe ser un Digito') despues ejecuto un grab_focus para que no
> deje cambiar cambiar a otra entrada de texto sin antes escribir el
> dato correcto el cual debe ser un digito.
>
> mi problema esque al parecer por funcionamiento del focus_out_event mi
> ventana de error se dispara 2 veces y por lo tanto se muestra 2 veces
> en patalla, y no se que hacer para que el focus_out_event no me
> dispare 2 veces la señal creo que el erro esta ahi.
> si no es asi por favor diganme si hay otra forma de evitar que se
> cambie a otro entry sin antes haber digitado en tipo de dato correcto
> el usuario
> si me pueden ayudar agradeceria mucho.
>
> aqui esta la parte del codigo:
>
> def on_txte_mdfcar_grupo_cntdad_usrios_focus_out_event (self, widget,
> data=None):
>
>    self.entry_texto = self.entry.get_text()
>
>    if not self.entry_texto.isdigit():
>      print 'NO digito'
>      dialogo_error(self.wndow , 'El dato debe  ser un Digito')
>      self.entry.grab_focus()
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es