PyGTK:gtk.TextView.scroll_to_mark不会更新大文件的显示

时间:2012-06-26 15:23:47

标签: python pygtk

我的应用程序有一个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 here是一个整数,表示要跳转到哪一行。问题是,当我使用“大”文件(小于1 MB)进行测试时,这可以按预期工作,但是“非常大”(> 10 MB),直到我点击小部件才会发生跳转,此时它会更新。我不知道为什么它不能自动滚动更大的文件。我有什么不知道的吗?

1 个答案:

答案 0 :(得分:0)

使用self.scroll_to_iter进行解决。