GtkTextView курсор всегда на центральной линии

У меня есть GtkTextViewгде я хотел бы иметь возможность центрировать курсор вертикально в центре.

Если курсор перемещается, текст должен прокручиваться вверх (или вниз), но курсор все равно должен оставаться в центральной позиции.

Я попробовал несколько вещей: добавление поля для первого и последнего символа textview, но это создает проблемы при добавлении текста за первым и последним символом. Также не очень приятно, если кто-то выбирает первую строку, цвет выделения расширяется в "пустую" комнату.

Короче мне нужно:

  1. Добавьте поле перед первой строкой
  2. Добавьте поле после последней строки
  3. Прокрутка текста в центре 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

Если вы хотите узнать больше, не стесняйтесь спрашивать меня по почте.

Ура, волк

Другие вопросы по тегам