如何在 python gtk 中用图像填充按钮

How to fill a button with image in python gtk

我创建了一个带有图像的 gtk 按钮。我的图片尺寸为 150x150。我想创建一个 150x150 的按钮,即使最大化 window.

它也应该相同
image = gtk.Image()
image.set_from_file("/home/jeevan/Pictures/msnbus.png")
box1=gtk.VBox()
box2=gtk.HBox()
box1.pack_start(box2)
gobutton=gtk.Button()
gobutton.add(image)
gobutton.set_size_request(150,150)
box2.pack_start(gobutton)

我希望我的按钮即使在最大化时也具有相同的 150x150 大小。 python gtk 怎么可能?

您不希望 Gtk.Button 展开,因此您应该这样做:

gobutton.set_hexpand(False)
gobutton.set_halign(Gtk.Align.CENTER)
gobutton.set_vexpand(False)
gobutton.set_valign(Gtk.Align.CENTER)

当然也可以使用Gtk.Align.ENDGtk.Align.STARTGtk.Align.BASELINE.

代替Gtk.Align.CENTER

编辑:

对于 Gtk+ 2(使用 pygtk),您可以将 Gtk.Button 打包到另一个 Gtk.Box 中,其中包含两个 Gtk.Alignments

image = gtk.Image.new_from_file("filename")
button = gtk.Button()
button.add(image)

inner_box = gtk.VBox()
inner_box.pack_start(gtk.Alignment(), True, True, 0)
inner_box.pack_start(button, False, False, 0)
inner_box.pack_start(gtk.Alignment(), True, True, 0)

outer_box = gtk.HBox()
outer_box.pack_start(gtk.Label("some widget"), True, True, 0)
outer_box.pack_start(inner_box, False, False, 0)