C と gtk+ に慣れるために、テキスト エディターを作成しています。私は gtk+-2.0 & gtksourceview-2.0 と gtk_scrolled_window を使用しています。goto 関数ブラウザーを作成する最初の試みとして、ドキュメント内で見つかった関数の配列と、関数が発生する対応する行の配列を単純に作成するだけでよいと考えました。私はそれだけのことをしました。devhelp で簡単に見つけられる goto line 機能がないことに驚きました。gtk_text_view_scroll_to_mark () が (マークを作成した後に) 私が望むものであるように聞こえますが、すべての *scroll_to 関数には within_margin が必要ですが、これは正直言ってよくわかりません.:
開発者ヘルプから:
この関数の目的で有効な画面は、inside_margin のサイズのマージンだけ縮小されます。
どういう意味ですか?
私も近いですか?この行番号へのスクロール機能を作成するにはどうすればよいですか?
ありがとう。
更新:次の 3 つの関数は、バッファー内の行にスクロールするために使用されました。
gtk_text_iter_set_line (&start, lineNums[9]);
gtk_text_buffer_add_mark (tbuffer, scroll2mark, &start);
gtk_text_view_scroll_to_mark (text_view, scroll2mark, 0.0, TRUE, 0.0, 0.17);
gtk_text_view_scroll_to_mark の最後のパラメーターは、ターゲット行番号を取得してバッファーの一番上の行に揃えるために使用されました。このパラメーターはすべての画面サイズで機能するとは限りませんが、テストしていません。
gtk_text_view_scroll_mark_onscreen 関数は行番号に近づきましたが、テキスト領域の下部から数行離れていました。