Domanda

Vorrei fare un'applicazione simile a un pannello, in apparenza molto simile al panel gnome. Vorrei usare GTK per questo (anche se ho esaminato QT), preferibilmente usando Python.

Come posso decorare la finestra in modo tale che viene applicato un colore/gradiente/bitmap/svg?

È stato utile?

Soluzione

Un modo è usare gli stili (l'esempio seguente utilizza stringhe in linea):

#!/usr/bin/env python

import gtk

pixmap_rc = """
pixmap_path "/home/foo/images"
style "bar" {
    bg_pixmap[NORMAL] = "logo.svg"
} widget "*foo" style "bar"
"""

color_rc= """
style "bar" {
    bg[NORMAL] = "Hot Pink"
} widget "*foo" style "bar"
"""

def main ():
    window = gtk.Window()
    window.set_decorated(False)
    window.connect("destroy", gtk.main_quit)

    window.set_name("foo")
    gtk.rc_parse_string(color_rc)

    window.show_all()
    gtk.main()

if __name__ == "__main__":
    main ()

L'impostazione del gradiente di colore tramite GTKRC sembra essere specifico per il motore.

Modificare: Ecco l'esempio GTKRC minimalista con immagine di sfondo allungata:

pixmap_path "/home/foo/images"
style "bar" {
    engine "pixmap" {
        image {
            function = FLAT_BOX
            file     = "test.png"
            stretch  = TRUE
        }
    }
} widget "*foo" style "bar"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top