我在ScrolledWindow中有一个treeview-widget,它是在运行时填充的。我想让ScrolledWindow自动滚动到列表的末尾。我通过调整ScrolledWindow的vadjustment,每次在树视图中插入一行,“解决”了这个问题。例如:
if new_line_in_row:
adj = self.scrolled_window.get_vadjustment()
adj.set_value( adj.upper - adj.page_size )如果我在交互式ipython会话中运行代码并自己设置值,一切都会按预期运行。
如果我使用默认的python解释器运行代码,自动滚动并不总是有效的。我调试了代码,问题似乎是,调整值有某种“滞后”,只有在一段时间后才会改变。
我的问题是:如何可靠地滚动到ScrolledWindow的最大位置?是否生成了可以使用的特殊信号?或者有没有更好的方法来设置adjustment-value
发布于 2022-02-18 20:45:28
建议的解决方案对我来说都不起作用,但我能够获得所需的行为(使用Go的GTk4绑定):
adj := scrolledWindow.VAdjustment()
adj.SetUpper(adj.Upper() + adj.PageSize())
adj.SetValue(adj.Upper())其他解决方案将滚动窗口(我的包含一个列表框)向下移动到倒数第二项,但不显示最后一项。它的行为方式让我认为上限需要增加,所以我尝试通过页面大小增加它,然后将滚动值设置为新的上限。
https://stackoverflow.com/questions/5218948
复制相似问题