Bueno, viendo que hay nivel en gtk...

Lorenzo Gil Sanchez lgs en sicem.biz
Lun Ene 5 16:33:40 CET 2004


Para conseguir lo que dices hay que tener en cuenta que tipo de
controles tendra tu dialogo.

Cuando tu pulsas enter y el foco no esta en el boton de aceptar el
control que tenia el foco es el que recibe el evento key-press. Por
simplificar, supongamos este dialogo:

Nombre:    ____________
Apellidos: ____________

OK CANCELAR


Donde hay dos gtk.Labels, dos gtk.Entry  y dos gtk.Buttons.

De las etiquetas no nos preocupamos porque no pueden tener el foco. Si
el foco lo tiene el boton OK estamos en el caso mas favorable porque al
pulsar enter efectivamente es nuestro boton predeterminado. Si estamos
en el boton Cancelar y le damos a enter lo que queremos es cancelar el
dialogo por lo que las unicas opciones que nos quedan es que nos
encontremos en los gtk.Entry de nombre y apellidos.

Todo este rollo para llegar a lo que tu quieres: que mientras estas
rellenando el nombre, si le das a enter se pulse el boton OK. Pues bien,
tienes que activar una propiedad del gtk.Entry:

http://www.pygtk.org/pygtk2reference/class-gtkentry.html#method-gtkentry--set-activates-default

nombreEntry.set_activates_default(gtk.TRUE)

Eso deberia funcionar. Evidentemente si tienes varios gtk.Entry, debes
hacerlo para cada uno de ellos. En Glade, la propiedad del gtk.Entry se
llama 'Activar predeterminado'

Un saludo

Lorenzo

El lun, 05-01-2004 a las 16:06, Marcos Sánchez Provencio escribió:
> ¿Cómo hago un botón por defecto en un diálogo con glade? Lo que quiero 
> es poder rellenar un dato y darle al retorno, en lugar de hacer clic en 
> el botón de aceptar o tabular hasta el botón.
> 
> He puesto las propiedades 'puede ser predeterminado' y 'predeterminado' 
> a verdadero. Sale una marquita en la esquina del botón, pero no responde 
> al enter...
> 
> _______________________________________________
> 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