PyGTK, изменяющий тему для всплывающего меню

Я провел несколько часов, ища на Google, и я сдался теперь...

Я должен изменить фон для всплывающего меню в моем приложении. Это установило на любую тему системного значения по умолчанию..., и мне нужно это, чтобы быть установленным на Сияние для все время.

какие-либо идеи, как достигнуть этого?

Here is how it looks now and this need to be light color

3
задан 24 February 2013 в 04:40

1 ответ

Я тема мои всплывающие окна как так:

#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 к Вашему всплывающему окну.

4
ответ дан 1 December 2019 в 16:07

Другие вопросы по тегам:

Похожие вопросы: