在 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 样式,就大功告成了……