如何设置Gtk ButtonBox子项的最小大小?

时间:2015-03-21 20:37:00

标签: python-3.x gtk gtk3

pic

我正在尝试设置此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问题。

1 个答案:

答案 0 :(得分:1)

我相信GtkButtonBox会对其按钮施加一些布局限制,您可能不需要这些约束。尝试使用常规GtkGrid中的按钮,但为其提供GTK_STYLE_CLASS_LINKED CSS类。

对于每个按钮,请执行:

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