我有一个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)
但是,使用这种方法,我需要在我的 textview 末尾添加几个换行符。因此,如果有人知道更好的解决方案,我会很高兴听到它)
我正在考虑进行基于像素的滚动,但我不知道该怎么做。
我很乐意听到一些建议!