PyGTK ändert das Design für das Popup-Menü

PyGTK ändert das Design für das Popup-Menü

Ich habe mehrere Stunden mit der Suche bei Google verbracht und habe es jetzt aufgegeben ...

Ich muss den Hintergrund für das Popup-Menü in meiner App ändern. Es wird auf das Standarddesign des Systems eingestellt ... und ich muss es immer auf Radiance einstellen.

irgendwelche Ideen, wie man das erreichen kann?

So sieht es jetzt aus und es muss eine helle Farbe sein

Antwort1

Ich thematisiere meine Popup-Fenster folgendermaßen:

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

Ich verwende Cairo auch, um das Popup-Fenster zu zeichnen und ihm eine schöne Textur zu geben. Dazu verbinde ich einfach sein „Draw“-Signal mit einem Rückruf.

Ich würde mir das Radiance Gtk-Design ansehen, um herauszufinden, welche Hintergrundfarbe es ist, und diese für die CSS-Einstellung „background-color“ verwenden. Sie finden sie unter /usr/share/themes/Radiance/Gtk-3.0/gtk.css. Wenn Sie keine Transparenz benötigen, überspringen Sie den obigen Pwindow-Kram und fügen Sie einfach den style_context zu Ihrem Popup hinzu.

verwandte Informationen