pygtk覚え書き gtk.TextViewで指定行へ移動する。
gtk.TextViewで行番号を指定して、その行へカーソルを移動させるには、以下のようにします。
# txtViewというgtk.TextViewがあったとして bf = txtView.get_buffer() lineIter = bf.get_iter_at_line(lineNo) if lineIter: bf.place_cursor(lineIter) txtView.scroll_to_iter(lineIter, 0.2)
上記のソースコード中のlineNoはイテレータを取得する行番号(ゼロオリジン)を指定します。
また、scroll_to_iter()の第2引数に0.2を指定していますが、スクロールした表示位置がgtk.TextView高さ方向のどのあたりにくるかを指定しているだけなので、好みでいいと思います。
なんだか、久しぶりにpygtkの日記を書いた気がします(笑
上記のカーソル移動は、現在制作中のテキストエディタでも使用しました。
使用箇所は、検索結果の一覧がダブルクリックされ時、該当するテキストの行へ移動する処理です。