如何设置Gtk.ScrolledWindow调整?
我该如何在python3中设置Gtk.ScrolledWindow的垂直调整?下面是一个展示这个问题的例子。
#!/usr/bin/env python3
from gi.repository import Gtk
class window:
def __init__(self):
win = Gtk.Window()
win.connect("delete_event", Gtk.main_quit)
win.set_default_size(300,100)
scroll = Gtk.ScrolledWindow(None, None)
view = Gtk.Viewport(None, None)
label = Gtk.Label('a\n\n\n\n\nb\n\n\n\n\n\n\n\nc')
view.add(label)
scroll.add(view)
position = Gtk.Adjustment(value=50)
scroll.set_vadjustment(position)
win.add(scroll)
win.show_all()
if __name__ == '__main__':
win = window()
Gtk.main()
2 个回答
0
通常它们会被设置为None。如果你想自己调整的话,可以新建一个Gtk.Adjustment对象。Gtk.Adjustment的参数包括(初始值,最小值,最大值,步进增量,页面增量,页面大小)。
1
luciomrx的回答是对的,但首先需要找出一些数值。所以,使用 get_vadjustment()
和 set_value()
会更简单。此外,set_vadjustment()
这个方法必须在 show_all()
之后执行。
这是它的工作原理:
from gi.repository import Gtk
class window:
def __init__(self):
win = Gtk.Window()
win.connect("delete_event", Gtk.main_quit)
win.set_default_size(300,100)
scroll = Gtk.ScrolledWindow(None, None)
view = Gtk.Viewport(None, None)
label = Gtk.Label('a\n\n\n\n\nb\n\n\n\n\n\n\n\nc')
view.add(label)
scroll.add(view)
win.add(scroll)
win.show_all()
position = scroll.get_vadjustment()
position.set_value(50)
scroll.set_vadjustment(position)
if __name__ == '__main__':
win = window()
Gtk.main()