Pregunta

Tengo un gtk.TextBuffer que se supone que se borra después de presionar Enter, similar al cuadro de entrada en la mayoría de los programas de chat. Solo estoy configurando el búfer de nuevo en una cadena en blanco. Sin embargo, el carácter de nueva línea de Enter no se elimina, y una línea en blanco termina sobre el cursor durante la siguiente entrada. Mover el cursor al primer gtk.Iter no ayuda.

¿Fue útil?

Solución

De manera predeterminada, la devolución de llamada " gobject.connect () " se llama antes que el controlador predeterminado. Debe usar " gobject.connect_after () " .

def insert_text_cb(text_buffer, position, text, lenght):
    if text == '\n':
        text_buffer.set_text('')

text_view = gtk.TextView()
text_view.get_buffer().connect_after('insert-text', insert_text_cb)

Otros consejos

¿Estás seguro de que estás activado en el evento adecuado? También intente conectarlo después.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top