嘿,我正在尝试做一个GTK IRC客户端,它使用webkit来显示它的消息。
webview是在一个ScrolledWindow,我希望滚动窗口滚动到底部,每次它变得太大。
我试过在添加消息时更改滚动窗口的vadjust值,但似乎根本不起作用。由于某种原因,它一直将其重置为0。
有人知道我该怎么解决这个问题吗?
干杯!
发布于 2011-02-26 03:26:34
我也有同样的问题。我认为这个问题是因为adjustment-changed和adjustment-value-changed信号并不总是在窗口完全完成重绘后发送的。这会导致调整值为零,因为页面在该点上没有内容。解决方案是改为连接到size-allocate信号。这只在窗口完全完成大小调整时调用,并且有一个额外的优点,即当用户手动滚动窗口时不会被调用。
下面是一个使用python绑定的示例:
def autoscroll_view(view, allocation):
#parent is the gtk.ScrolledWindow that needs updating
parent = view.get_parent()
adj = parent.get_vadjustment()
adj.value = adj.upper - adj.page_size
parent.set_vadjustment(adj)
view = webkit.WebView()
window = gtk.ScrolledWindow()
window.add(view)
view.connect('size-allocate', autoscroll_view)https://stackoverflow.com/questions/3535568
复制相似问题