как удалить последнюю строку gtk.Textbuffer - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть список, заполненный текстовым буфером, как;

self.textbuffer.insert(self.textbuffer.get_end_iter(), '\n' + str(values))

Мне нужно удалить последнюю строку списка нажатием кнопки, и я использую;

self.textbuffer.delete(self.textbuffer.get_iter_at_line(self.textbuffer.get_line_count()-1),self.textbuffer.get_end_iter())

С помощью этого кода операция удаления запускается только один раз, а в других нет кода ошибки.

Как удалить последнюю строку текстового буфера?

1 Ответ

0 голосов
/ 11 февраля 2019

Вы не удаляете новую строку, которая отделяет последнюю строку от предыдущей строки.Поэтому вам нужно вызвать обратный символ char по результату get_iter_at_line, чтобы получить iter в предыдущей строке непосредственно перед новой строкой.

start = self.textbuffer.get_iter_at_line(self.textbuffer.get_line_count()-1)
start.backward_char()
self.textbuffer.delete(start, self.textbuffer.get_end_iter())
...