Cómo decorar una ventana GTK como por ejemplo. ¿El Gnome Panel?
-
28-10-2019 - |
Pregunta
Me gustaría hacer una aplicación tipo panel, en apariencia muy parecida a la panel Gnome. Me gustaría usar GTK para esto (aunque he buscado en QT), preferiblemente usando Python.
¿Cómo puedo decorar la ventana de tal manera que se aplica un color/gradiente/mapa de bits/svg?
Solución
Una forma es usar estilos (el siguiente ejemplo usa cadenas de estilo en línea):
#!/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 ()
Sin embargo, establecer el gradiente de color a través de GTKRC parece ser específico del motor.
Editar: Aquí va un ejemplo minimalista de GTKRC con imagen de fondo estirada:
pixmap_path "/home/foo/images"
style "bar" {
engine "pixmap" {
image {
function = FLAT_BOX
file = "test.png"
stretch = TRUE
}
}
} widget "*foo" style "bar"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow