2009-06-24 6 views
1

Ich habe einen gtk.TextBuffer, der nach dem Drücken der Eingabetaste gelöscht werden soll, ähnlich dem Eingabefeld in den meisten Chat-Programmen. Ich setze den Puffer nur auf eine leere Zeichenfolge zurück. Das Newline-Zeichen von Enter wird jedoch nicht entfernt und eine Leerzeile endet bei der nächsten Eingabe über dem Cursor. Das Verschieben des Cursors auf den ersten gtk.Iter hilft nicht.clearing newline char von gtk.Textbuffer

Antwort

2

Standardmäßig wird "gobject.connect()" Callback vor dem Standard-Handler aufgerufen. Sie müssen "gobject.connect_after()" verwenden.

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) 
+0

Danke, das hat funktioniert. – wodemoneke

1

Sind Sie sicher, dass Sie das Ereignis ausgelöst haben? Versuchen Sie es auch danach zu verbinden.