Domanda

Ho un gtk.TextBuffer che dovrebbe essere cancellato dopo aver premuto Invio, simile alla casella di input sulla maggior parte dei programmi di chat. Sto solo riportando il buffer su una stringa vuota. Il carattere di nuova riga da Invio non viene rimosso, e una riga vuota finisce sopra il cursore durante l'input successivo. Spostare il cursore sul primo gtk.Iter non aiuta.

È stato utile?

Soluzione

Per impostazione predefinita, il callback " gobject.connect () " viene chiamato prima del gestore predefinito. Devi utilizzare " 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)

Altri suggerimenti

Sei sicuro di essere attivato sull'evento corretto? Prova anche a connetterlo dopo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top