3

我一直试图让我的工具栏看起来像 Ubuntu 应用程序中的标准工具栏,并且它在一定程度上可以工作,除了工具栏中的按钮没有应用正确的主题。默认工具栏的文本是彩色的,在悬停时,按钮是难看的棕褐色,而不是像标准 Ubuntu 应用程序中那样变得更深的灰色。

换句话说,我得到了这个:

而不是这个:

(我没有足够的代表直接发布图片)

我一直在使用以下方法来更改工具栏样式,因为 Glade 似乎没有自己更改它的选项:

self.bd = Gtk.Builder()
self.bd.add_from_file("builderfile.glade")
self.bd.connect_signals(self)
...

toolb = self.bd.get_object("toolbar")
toolb_style = toolb.get_style_context()
toolb_style.add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

这适用于工具栏现在变暗的程度,但按钮的主题不正确。STYLE_CLASS_PRIMARY_TOOLBAR我尝试在设置而不是使用后手动将按钮添加到工具栏,Gtk.Builder()但它们的颜色也不是正确的。

我想手动创建一个工具栏并填写所有信息可能会起作用,但是能够使用 Glade 进行设计会很好。

4

1 回答 1

2

我在这里写这个答案是因为它是一个解决方案,但这并不理想,因为它不使用 Glade,而且有点乱。我将不得不等到新版本的 Glade 进入 Ubuntu,因为显然该功能已在上游添加。

我最终使用的解决方案只是在标准 GTK 和 python 中创建所有工具栏,然后将其添加到Gtk.BoxGlade 中定义的空。像这样:

bd = Gtk.Builder()
bd.add_from_file("gladefile.glade")

...

button1 = Gtk.ToolButton(stock_id=Gtk.STOCK_ADD, ...)
button2 = Gtk.ToolButton(...)

toolbar = Gtk.Toolbar()
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
toolbar.insert(button1, 0)
toolbar.insert(button2, 1)
toolbar.show_all()

bd.get_object("toolbar_slot").pack_start(toolbar, False, True, 0)
于 2012-09-04T03:19:37.720 回答