У меня есть GtkTextView
, где я хотел бы иметь возможность центрировать курсор вертикально в центре.
Если курсор перемещается, текст должен прокручиваться вверх (или вниз), но курсор должен оставаться в центральном положении.
Я пробовал несколько вещей: добавление поля к первому и последнему символу текстового представления, но это создает проблемы при добавлении текста за первым и последним символом. Также нехорошо, если выбрать первую строку, цвет выделения расширяется в «пустую» комнату.
Короче, мне нужно:
- Добавить поле перед первой строкой
- Добавить поле после последней строки
- Прокрутите текст, чтобы центрировать его на
cursor_move
илиtext_changed
(в настоящее время я решил это с помощью
cursor_iter = self.TextBuffer.get_iter_at_mark(cursor)
fflines = round(self.window_height/(2*20))
cursor_iter.forward_visible_lines(fflines)
self.TextEditor.scroll_to_iter(cursor_iter, 0.0, True, 0, 0.5)
Однако при таком подходе мне понадобится несколько новых строк в конце моего текстового представления. Так что, если кто-то знает лучшее решение для этого, я был бы рад услышать это)
Я думал о прокрутке на основе пикселей, но я не знаю, как это сделать.
Буду рад услышать несколько предложений!