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

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

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

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

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

  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)

Однако при таком подходе мне понадобится несколько новых строк в конце моего текстового представления. Так что, если кто-то знает лучшее решение для этого, я был бы рад услышать это)

Я думал о прокрутке на основе пикселей, но я не знаю, как это сделать.

Буду рад услышать несколько предложений!


person wolfv    schedule 13.07.2012    source источник


Ответы (1)


Видимо никто не ответил.

Я, наконец, взломал что-то вместе, что как-то работает. Это может быть не самый чистый код, но кого это волнует?

На самом деле, поскольку нет способа добавить отступ в текстовое поле, он добавляет новые строки в начало и конец текстового файла, чтобы получить своего рода отступ.

Вы можете найти мою реализацию здесь: Проект панели запуска для UberWriter

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

Привет, Волк

person wolfv    schedule 16.08.2012