очистка символа новой строки от gtk.Textbuffer

StackOverflow https://stackoverflow.com/questions/1037888

  •  10-07-2019
  •  | 
  •  

Вопрос

У меня есть 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)

Другие советы

Вы уверены, что инициируете нужное событие? Также попробуйте подключить его после.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top