Pergunta

Eu tenho um gtk.TextBuffer que é suposto ser limpo depois de pressionar Enter, semelhante à caixa de entrada na maioria dos programas de chat. Eu apenas estou definindo a parte de trás do buffer para uma cadeia em branco. O caractere de nova linha de Enter não é removido apesar de, e uma linha em branco termina acima do cursor durante a próxima entrada. Mover o cursor para a primeira gtk.Iter não ajuda.

Foi útil?

Solução

Por padrão, "gobject.connect()" callback é chamado antes do manipulador padrão. Você precisa 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)

Outras dicas

Você tem certeza que está gatilho do evento adequada? Também tente ligá-lo depois.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top