2010-08-20 6 views
1

안녕하세요, 저는 웹킷을 사용하여 메시지를 표시하는 GTK IRC 클라이언트를 만들려고합니다.GtkScrolledWindow + WebkitWebView Scrolling

webview는 ScrolledWindow 내에 있으며 스크롤 창이 너무 커질 때마다 스크롤 창이 아래로 스크롤되기를 원합니다.

메시지를 추가 할 때 scrolledwindow의 vadjustment 값을 변경해 보았지만 전혀 작동하지 않는 것 같습니다. 그것은 어떤 이유로 0으로 재설정을 유지합니다.

아무도 내가 이것을 해결할 수있는 방법을 알고 있습니까?

건배!

답변

2

동일한 문제가있었습니다. 윈도우가 완전히 다시 그려진 후 adjustment-changedadjustment-value-changed 신호가 항상 전송되지 않기 때문에 문제가 발생한 것으로 생각됩니다. 이로 인해 해당 지점에 페이지의 내용이 없기 때문에 조정 값이 0이됩니다. 해결책은 대신 size-allocate 신호에 연결하는 것입니다. 이것은 윈도우의 크기가 완전히 끝난 경우에만 호출되며 사용자가 윈도우를 수동으로 스크롤 할 때 호출되지 않는 추가 이점이 있습니다.

여기 파이썬 바인딩을 사용하여 샘플입니다

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) 
+0

6 호선 오타를 가지고 있지만, 감사합니다 - 당신을, 당신은 내 문제를 해결 :) – meshy

+0

오타는 이제 수정되어야합니다. 다행스럽게 도울 수있어! – Narcolei

관련 문제