使用 GTK3 在 GtkEntry 小部件后面应用主工具栏背景

使用 GTK3 在 GtkEntry 小部件后面应用主工具栏背景

在 PyGI (GTK3) 中,如何使 GtkEntry 小部件显示在与主工具栏应用的相同背景(由用户主题)上。我尝试添加相同的样式类,如下所示:

entry.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

但该类似乎在非 GtkToolbar 小部件上无法观察到。那么我该如何提示用户的主题在 GtkEntry 小部件后面应用相同的样式呢?

(如果有关系的话,我在 GtkHBox 容器的第一个单元格中有一个 GtkEntry。但即使当我对该 HBox 应用固定渐变时,包含 GtkEntry 的整个单元格似乎也会用平面背景色掩盖住 HBox 的背景。)

谢谢。

答案1

它被称为主工具栏样式,因为它应该只应用于主工具栏。

在 Gtk 中,工具栏默认只能容纳 ToolButtons,但存在没有视觉表示的 ToolItem 类。

创建它是因为它可以嵌入其他小部件。ToolItem 具有添加方法,您可以像这样使用:

my_tool_item.add(my_box),其中 my_box 包含您的条目

然后您可以将工具项添加到工具栏 my_toolbar.insert(my_tool_item,index)

您的工具栏当然已经调用:get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

不能将“primary-toolbar”与非工具栏小部件一起使用的原因很可能是因为在.css 文件中它的定义如下:

GtkToolbar.primary-toolbar 

{

    /* style info*/

}

答案2

您没有说为什么不能使用工具栏,所以我会建议:

用工具栏替换 HBox,为该工具栏赋予 Gtk.STYLE_CLASS_PRIMARY_TOOLBAR 样式,就大功告成了……

相关内容