[Python-es] En GTK: cómo saber si una tecla en particular está presionada?

Arnau Sanchez pyarnau en gmail.com
Mie Mar 10 23:58:21 CET 2010


On 10/03/10 22:00, Ramiro wrote:

> Gracias por el ejemplo, yo busco algo así de poder saber que botones
> están presionados en un determinado momento, pero con el teclado.

El último código que te pasé muestra en todo momento el estado de los 
modificadores (Control, Alt, etc), pero no las teclas "normales".

> Lo que quiero hacer es algo normal nomás, saber si cuando el usuario
> aprieta una tecla, si esta va acompañada por un CTRL, un ALT o alguna
> otra. Usando los EVENTs podría zafar guardando en una variable los
> estados de las teclas que fueron presionadas, pero si hay una forma más
> directa de hacerlo me parecería mejor.

Creo que no nos hemos entendido. En la primera solución que mandé, al capturar 
"key-press-event", tienes el estado de los modificadores perfectamente 
accesibles en event.state. Si alguien hace control+alt+p, recibirás tres 
eventos, el último de los cuales -el que realmente te importa- te informa que se 
ha pulsado la "P" con los modificadores Control y Alt activos.

No creas que nadie se complica más la vida para saber qué combinaciones de tecla 
le llegan a una aplicación, si tuviéramos que mantener el estado de los 
modificadores por sus keyups y keydown sería un infierno.



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