[pygtk] Scrolling gtk.Viewport to a specific location
Thomas Guettler
hv at tbz-pariv.de
Mon Jun 23 22:32:11 WST 2008
Mitko Haralanov schrieb:
> I have a gtk.ScrolledWindow, which has a gtk.VBox added with a
> gtk.Viewport.
> What I would like to do is be able to scroll the gtk.ScrolledWindow to
> a specific location (one of the gtk.VBox children). I know how to do
> the actual scrolling (using the h/vadjustments) but how do I determine
> how much to scroll it by so the correct child is in view?
>
> Thanks for the help?
>
>
Does this help you:
http://faq.pygtk.org/index.py?req=show&file=faq10.010.htp
10.10. <http://faq.pygtk.org/index.py?req=show&file=faq10.010.htp>
How do I adjust a ScrolledWindow to adjust to a given child widget?
One common request is to get a ScrolledWindow to adjust to display one
of the widgets it contains -- frequently you'd like to adjust the
scrollbar to display the widget that receives focus. This is possible by
using the set_value method of the ScrolledWindow's adjustment object in
conjunction with the child widget's `focus_in_event' signal. An
(untested) example follows:
def focus_in(widget, event, adj):
alloc = widget.get_allocation()
if alloc.y < adj.value or alloc.y > adj.value + adj.page_size:
adj.set_value(min(alloc.y, adj.upper-adj.page_size))
scrolled_window = gtk.ScrolledWindow()
adj = scrolled_window.get_vadjustment()
# ... create child widget
child.connect('focus_in_event', focus_in, adj)
This should make the scrollbar adjust automatically whenever child
receives focus.
--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de
More information about the pygtk
mailing list