如何设置 Gtk ButtonBox child 的最小尺寸?

How do I set the minimum size of a Gtk ButtonBox child?

我正在尝试设置此 GtkButtonBox 中按钮的最小尺寸。目前它们似乎是固定的 - 我认为大约 85 像素。

这可能吗?

如果不是,在 Gtk 中是否有另一种方法让两个小按钮像上图那样依偎在一起,而不是让它们看起来像两个单独的按钮?例如 GtkStackSwitcher 可能是我可以使用的东西,但似乎没有办法响应按钮的点击事件。

我用这个测试程序创建了上面的(Ubuntu 14.04,Gtk+3.10 和 Python3):

from gi.repository import Gtk
import sys


class MyWindow(Gtk.ApplicationWindow):

    def __init__(self, app):
        Gtk.Window.__init__(self, title="example", application=app)
        self.set_default_size(350, 200)
        self.set_border_width(10)

        hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)
        hbox.set_layout(Gtk.ButtonBoxStyle.EXPAND)
        button = Gtk.Button(label="a")
        hbox.add(button)
        button2 = Gtk.Button(label="b")
        hbox.add(button2)

        self.add(hbox)

class MyApplication(Gtk.Application):

    def __init__(self):
        Gtk.Application.__init__(self)

    def do_activate(self):
        win = MyWindow(self)
        win.show_all()

    def do_startup(self):
        Gtk.Application.do_startup(self)

app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)

关于我使用的桌面环境的问题。

我已经尝试过 Mate、Unity 和 Gnome-Shell。所有的工作方式相同。我已经删除了标题和那些控件。仍然发生同样的事情。在我看来,这更像是一个 GTK 问题。

我认为 GtkButtonBox 对其按钮施加了一些您可能不希望在此处出现的布局限制。尝试在常规 GtkGrid 中使用按钮,但给它们 GTK_STYLE_CLASS_LINKED CSS class.

对于每个按钮,执行:

button.get_style_context().add_class(Gtk.STYLE_CLASS_LINKED)