Come decorare una finestra GTK come EG. il pannello gnome?
-
28-10-2019 - |
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?
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