如何在 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_leftset_margin_right_bottom_top来改变页边距。上面代码的结果是: