我有一个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的末尾添加几个换行符。因此,如果有人知道更好的解决方案,我会很高兴听到它)
我在考虑做基于像素的滚动,但我不知道如何解决这个问题。
我很乐意听到一些建议!
答案 0 :(得分:1)
显然没有人想出答案。
我终于在某种程度上一起工作了。 它可能不是最干净的代码,但谁在乎呢?
实际上,由于无法在文本框中添加填充,因此它会在文本文件的开头和结尾添加换行符以获得填充。
您可以在此处找到我的实施:Launchpad project for UberWriter
如果您想了解更多信息,请随时通过邮件询问我。
干杯,狼