嘿我正在尝试创建一个使用webkit来显示其消息的GTK IRC客户端。
webview在ScrolledWindow中,我希望滚动窗口每次变得太大时滚动到底部。
我已经尝试在添加消息时更改滚动窗口的调整值,但这似乎根本不起作用。由于某种原因,它一直将其重置为0。
有谁知道我怎么解决这个问题?
干杯!
答案 0 :(得分:2)
我有同样的问题。我认为问题是由于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)