如何在 GTK 中更改 VScale 的大小 Python
How to change size of VScale in GTK Python
我已经在我的 GUI 中添加了一个 gtk.VScale() 并且大小真的很小,但是为什么?
我有这个代码示例:
def __init__(self, parent, grid):
self.parent = parent
self.tooltips = gtk.Tooltips()
self.ajustement = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
self.scaleH = gtk.VScale(self.ajustement)
self.bt_lumiere = gtk.ToggleButton()
self.bt_lumiere.set_active(False)
self.bt_lumiere.set_image(gtk.image_new_from_file('data/icons/moon.jpg'))
self.bt_lumiere.connect("pressed",self.on_changer_etat_lumiere)
self.barreLumiere = BarreLuminosite(self)
box = gtk.VBox(False,5)
box.pack_start(self.bt_lumiere, True)
box.pack_start(self.scaleH,True)
grid.attach(self.align(box, padright=1, padleft=1), 1,2,1,5)
def align(self, widget, xalign=0, yalign=0.5, padtop=0, padbottom=0, padleft=0, padright=0):
ali = gtk.Alignment(xalign=xalign, yalign=yalign)
ali.add(widget)
ali.set_padding(padtop, padbottom, padleft, padright)
return ali
结果:
提前致谢。
您没有指定 Gtk 或 python 版本,所以很难回答。此代码适用于 Gtk 3 和 Python 3,使用内省。也许这有帮助:
hbox = Gtk.HBox()
large_label = Gtk.Label("Large label")
self.ajuste = Gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 10)
self.vscale = Gtk.VScale.new(self.ajuste)
vbox = Gtk.VBox()
lbl = Gtk.Image.new_from_icon_name( "system-run", Gtk.IconSize.DND)
vbox.pack_start(lbl, False, False, 0)
vbox.pack_start(self.vscale, True, True, 0)
hbox.pack_start(large_label, False, False, 0)
hbox.pack_start(vbox, False, False, 0)
self.add(hbox)
self.show_all()
请注意,在 vbox.pack_start
中,对于 vscale
,大小选项是 True
,以便可以扩大规模。
你也可以在秤上调用set_size_request
,你可以用set_margin_left
、set_margin_right
、_bottom
和_top
来改变页边距。上面代码的结果是:
我已经在我的 GUI 中添加了一个 gtk.VScale() 并且大小真的很小,但是为什么?
我有这个代码示例:
def __init__(self, parent, grid):
self.parent = parent
self.tooltips = gtk.Tooltips()
self.ajustement = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
self.scaleH = gtk.VScale(self.ajustement)
self.bt_lumiere = gtk.ToggleButton()
self.bt_lumiere.set_active(False)
self.bt_lumiere.set_image(gtk.image_new_from_file('data/icons/moon.jpg'))
self.bt_lumiere.connect("pressed",self.on_changer_etat_lumiere)
self.barreLumiere = BarreLuminosite(self)
box = gtk.VBox(False,5)
box.pack_start(self.bt_lumiere, True)
box.pack_start(self.scaleH,True)
grid.attach(self.align(box, padright=1, padleft=1), 1,2,1,5)
def align(self, widget, xalign=0, yalign=0.5, padtop=0, padbottom=0, padleft=0, padright=0):
ali = gtk.Alignment(xalign=xalign, yalign=yalign)
ali.add(widget)
ali.set_padding(padtop, padbottom, padleft, padright)
return ali
结果:
您没有指定 Gtk 或 python 版本,所以很难回答。此代码适用于 Gtk 3 和 Python 3,使用内省。也许这有帮助:
hbox = Gtk.HBox()
large_label = Gtk.Label("Large label")
self.ajuste = Gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 10)
self.vscale = Gtk.VScale.new(self.ajuste)
vbox = Gtk.VBox()
lbl = Gtk.Image.new_from_icon_name( "system-run", Gtk.IconSize.DND)
vbox.pack_start(lbl, False, False, 0)
vbox.pack_start(self.vscale, True, True, 0)
hbox.pack_start(large_label, False, False, 0)
hbox.pack_start(vbox, False, False, 0)
self.add(hbox)
self.show_all()
请注意,在 vbox.pack_start
中,对于 vscale
,大小选项是 True
,以便可以扩大规模。
你也可以在秤上调用set_size_request
,你可以用set_margin_left
、set_margin_right
、_bottom
和_top
来改变页边距。上面代码的结果是: