0

我的应用程序有一个 gtk.TextView(实际上是 gtksourceview.View)小部件,它显示一个(大)文本文件并由 TreeView 索引。双击 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是我的widget,是TreeView的子类,self.buffer显然是对应的gtk.TextBuffer。startline 这里是一个整数,表示要跳转到哪一行。问题是,当我使用“大”文件(小于 1 MB)进行测试时,这可以按预期工作,但是对于“非常大”(> 10 MB),在我单击小部件之前不会发生跳转,此时它会更新。我不知道为什么它不能自动滚动较大的文件。有什么我不知道的吗?

4

1 回答 1

0

通过使用 self.scroll_to_iter 解决。

于 2012-07-10T20:19:59.557 回答