0

私のアプリケーションには、(大きな) テキスト ファイルを表示し、TreeView によってインデックス付けされる gtk.TextView (実際には gtksourceview.View) ウィジェットがあります。TreeView 内のエントリをダブルクリックすると、TextView 内の対応する場所にジャンプします。これには、次のメソッドが含まれます。

def jump_to_line(self, startline):
    itr = self.buffer.get_iter_at_line(startline)
    mark = self.buffer.create_mark(None, itr, True)
    self.scroll_to_mark(mark, 0.0, use_align=True, yalign=0.0)

self は TreeView のサブクラスである私のウィジェットであり、self.buffer は明らかに対応する gtk.TextBuffer です。ここで startline は、ジャンプする行を示す整数です。問題は、「大きな」ファイル (1 MB 未満) でテストすると、これは期待どおりに機能しますが、「非常に大きな」ファイル (> 10 MB) では、ウィジェットをクリックするまでジャンプが発生しないことです。その時点で更新されます。大きなファイルを自動的にスクロールできない理由がわかりません。ここで私が気づいていないことはありますか?

4

1 に答える 1

0

self.scroll_to_iter を使用して回避しました。

于 2012-07-10T20:19:59.557 に答える