[pyar] PyQt QTextEdit + KeyPressEvent

Roberto Alsina ralsina en netmanagers.com.ar
Sab Nov 27 18:56:42 ART 2010


On Saturday 27 November 2010 18:32:55 Martin Cerdeira wrote:
> Hola. Estoy tratando de atrapar el evento de keystroke en un widget
> QTextEdit. Intenté algo así:
> 
> def on_txt_KeyPressEvent(self, event):
>     print "key presssss'
> 
> Es decir, intenté de la misma forma que atraparía el evento de
> textChanged, pero, con KeyPressEvent no funca. En la documentación veo
> que dice [virtual protected] ...
> 
> Hay manera de atrapar ese evento?

El problema es que textChanged es una señal no un evento. En Qt eventos y 
señales son cosas distintas.

Una señal la conectás a cuantas cosas quieras, en el mismo objeto o en otro. 
Por eso vos podes conectar la señal textChanged del QTextEdit con el slot 
on_txt_texhChanged que está definida en la ventana que lo contiene.

Los eventos sólo están relacionados con una función manejadora en el mismo 
objeto, y se los reimplementa en una clase que herede QTextEdit (en este 
caso).

O sea, create MyTextEdit (o lo que sea), que redefina keyPressEvent() y usala 
en vez de QTextEdit.

De todas formas, el 90% de las veces no querés hacer eso. Por ejemplo, puede 
ser mas facil implementar un eventFilter y aplicarlo al QTextEdit (o a la 
ventana completa).



More information about the pyar mailing list