Примените фон основной панели инструментов за виджетом GtkEntry с GTK3
В PyGI (GTK3) как сделать так, чтобы виджет GtkEntry отображался на том же фоне, который применен (по теме пользователя) к основной панели инструментов. Я попытался добавить тот же класс стилей, как это:
entry.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
но этот класс, кажется, не наблюдается на виджете, который не является GtkToolbar. Итак, как мне настроить тему пользователя, чтобы применить те же стили к виджету GtkEntry?
(Если это имеет значение, у меня есть GtkEntry в первой ячейке контейнера GtkHBox. Но даже когда я применяю фиксированный градиент к этому HBox, вся ячейка, содержащая GtkEntry, кажется, маскирует фон HBox с плоским фоновым цветом.)
Благодарю.
2 ответа
Он называется стилем основной панели инструментов, поскольку его следует применять только к основной панели инструментов.
В Gtk панели инструментов по умолчанию могут содержать только ToolButtons, но есть класс ToolItem, который не имеет визуального представления.
Это создано, потому что это может вставить другие виджеты. ToolItem имеет метод add, который вы можете использовать как:
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*/
}
Вы не сказали, почему вы не можете использовать панель инструментов, поэтому я предлагаю именно это:
замените HBox панелью инструментов, задайте для этой панели инструментов стиль Gtk.STYLE_CLASS_PRIMARY_TOOLBAR, и все готово...