очистка символа новой строки от gtk.Textbuffer
Вопрос
У меня есть gtk.TextBuffer, который должен быть очищен после нажатия Enter, аналогично полю ввода в большинстве программ чата. Я просто устанавливаю буфер обратно в пустую строку. Символ новой строки из Enter не удаляется, и пустая строка заканчивается над курсором при следующем вводе. Перемещение курсора к первому gtk.Iter не помогает.
Решение
По умолчанию обратный вызов " gobject.connect () "
вызывается перед обработчиком по умолчанию. Вам необходимо использовать " 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)
Другие советы
Вы уверены, что инициируете нужное событие? Также попробуйте подключить его после.
Не связан с StackOverflow