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