私はGtkTextView
、カーソルを中央に垂直に配置できるようにしたいと考えています。
カーソルが移動した場合、テキストは上 (または下) にスクロールする必要がありますが、カーソルは中央の位置にとどまる必要があります。
テキストビューの最初と最後の文字にマージンを追加しますが、最初と最後の文字の後ろにテキストを追加すると問題が発生します。また、最初の行を選択すると、選択色が「空の」部屋に拡大されます。
要するに、私はする必要があります:
- 最初の行の前に余白を追加する
- 最終行の後にマージンを追加する
- テキストをスクロールして、
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)
ただし、このアプローチでは、テキストビューの最後にいくつかの改行が必要になります。誰かがそれに対するより良い解決策を知っているなら、私はそれを聞いてうれしいです)
ピクセルベースのスクロールを考えていましたが、これを行う方法がわかりません。
いくつかの提案を聞いてうれしいです!