GtkTextView курсор всегда на центральной линии
У меня есть GtkTextView
где я хотел бы иметь возможность центрировать курсор вертикально в центре.
Если курсор перемещается, текст должен прокручиваться вверх (или вниз), но курсор все равно должен оставаться в центральной позиции.
Я попробовал несколько вещей: добавление поля для первого и последнего символа textview, но это создает проблемы при добавлении текста за первым и последним символом. Также не очень приятно, если кто-то выбирает первую строку, цвет выделения расширяется в "пустую" комнату.
Короче мне нужно:
- Добавьте поле перед первой строкой
- Добавьте поле после последней строки
- Прокрутка текста в центре
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)
Однако при таком подходе мне понадобится несколько новых строк в конце моего текстового обзора. Так что, если кто-то знает лучшее решение для этого, я был бы рад услышать это)
Я думал о пиксельной прокрутке, но не знаю, как это сделать.
Буду рад услышать некоторые предложения!
1 ответ
Видимо никто не придумал ответ.
Я наконец взломал что-то вместе, что-то работает. Это может быть не самый чистый код, но кого это волнует?
На самом деле, поскольку нет никакого способа добавить заполнение в текстовое поле, он добавляет новые строки в начале и конце текстового файла, чтобы получить вид заполнения.
Вы можете найти мою реализацию здесь: Проект Launchpad для UberWriter
Если вы хотите узнать больше, не стесняйтесь спрашивать меня по почте.
Ура, волк