GtkScrolledWindow + WebkitWebView滚动

时间:2010-08-20 23:38:01

标签: c webkit gtk

嘿我正在尝试创建一个使用webkit来显示其消息的GTK IRC客户端。

webview在ScrolledWindow中,我希望滚动窗口每次变得太大时滚动到底部。

我已经尝试在添加消息时更改滚动窗口的调整值,但这似乎根本不起作用。由于某种原因,它一直将其重置为0。

有谁知道我怎么解决这个问题?

干杯!

1 个答案:

答案 0 :(得分:2)

我有同样的问题。我认为问题是由于adjustment-changedadjustment-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)