如何在GTK Python中更改VScale的大小

时间:2017-03-30 09:33:35

标签: python pygtk

我在我的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

结果: result 提前谢谢。

1 个答案:

答案 0 :(得分:0)

你没有指定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的{​​{1}}中,大小调整选项为vscale,因此可以扩展比例。

您也可以在比例尺上调用True,然后可以使用set_size_requestset_margin_leftset_margin_right_bottom更改边距。上面代码的结果是:

enter image description here