1

私は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)

ただし、このアプローチでは、テキストビューの最後にいくつかの改行が必要になります。誰かがそれに対するより良い解決策を知っているなら、私はそれを聞いてうれしいです)

ピクセルベースのスクロールを考えていましたが、これを行う方法がわかりません。

いくつかの提案を聞いてうれしいです!

4

1 に答える 1

1

どうやら誰も答えを思いつきませんでした。

私は最終的に何とか機能している何かを一緒にハッキングしました。これは最もクリーンなコードではないかもしれませんが、誰が気にしますか?

実際には、テキストボックスにパディングを追加する方法がないため、テキストファイルの最初と最後に改行を追加して、一種のパ​​ディングを取得します。

ここで私の実装を見つけることができます: UberWriter の Launchpad プロジェクト

詳しく知りたい方は、お気軽にメールでお尋ねください。

乾杯、ウルフ

于 2012-08-16T21:26:55.283 に答える