Я провел несколько часов, ища на Google, и я сдался теперь...
Я должен изменить фон для всплывающего меню в моем приложении. Это установило на любую тему системного значения по умолчанию..., и мне нужно это, чтобы быть установленным на Сияние для все время.
какие-либо идеи, как достигнуть этого?
Я тема мои всплывающие окна как так:
#Use Css themes
css = Gtk.CssProvider()
css.load_from_data("""
.popup {background-color: rgba(0,0,0,0); border: 0px rgba(255,255,255,0); border-radius: 14px; border-width: 0; }
"""
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), css,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
#Get popup parent and set rgba visual so I can do transparency
pwindow=self.popup.get_parent()
screen=pwindow.get_screen()
pwindow.set_visual(screen.get_rgba_visual())
#Give popups the popup CSS class
self.popup.get_style_context().add_class('popup')
Я также использую Каир, чтобы потянуть всплывающее окно и дать ему хорошую структуру. Чтобы сделать это, я просто подключаю его сигнал 'ничьей' к вызову назад.
Я посмотрел бы на Сияние тема Gtk для обнаружения то, что цвет фона, и используйте это для установки CSS цвета фона. Можно найти его в /usr/share/themes/Radiance/Gtk-3.0/gtk.css
. Если Вам не нужна прозрачность, то пропустите материал pwindow выше и просто добавьте style_context к Вашему всплывающему окну.