PyGTK cambia el tema del menú emergente

PyGTK cambia el tema del menú emergente

Pasé unas horas buscando en Google y ahora me di por vencido...

Necesito cambiar el fondo del menú emergente en mi aplicación. Se configuró en cualquier tema predeterminado del sistema... y necesito que esté configurado en Radiance todo el tiempo.

¿Alguna idea de cómo lograr esto?

Así es como se ve ahora y debe ser de color claro.

Respuesta1

El tema de mis ventanas emergentes es el siguiente:

#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')

También uso cairo para dibujar la ventana emergente y darle una textura agradable. Para hacer eso, simplemente conecto su señal de "extraer" a una devolución de llamada.

Miraría el tema Radiance Gtk para descubrir cuál es el color de fondo y lo usaría para la configuración CSS del color de fondo. Puedes encontrarlo en /usr/share/themes/Radiance/Gtk-3.0/gtk.css. Si no necesita transparencia, omita las cosas de pwindow anteriores y simplemente agregue style_context a su ventana emergente.

información relacionada