【问题标题】:PyGTK: gtk.TextView.scroll_to_mark doesn't update display for large filesPyGTK:gtk.TextView.scroll_to_mark 不更新大文件的显示
【发布时间】:2012-06-26 15:23:47
【问题描述】:

我的应用程序有一个 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),在我单击小部件之前不会发生跳转,此时它会更新。我不知道为什么它不能自动滚动较大的文件。这里有什么我不知道的吗?

【问题讨论】:

  • 有趣:使用 self.scroll_to_iter 效果很好。所以我不再被这个问题所困扰,但它仍然很奇怪。

标签: python pygtk


【解决方案1】:

通过使用 self.scroll_to_iter 解决。

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多