Как украсить окно GTK, например, например. Гном-панель?

StackOverflow https://stackoverflow.com/questions/5868114

Вопрос

Я хотел бы сделать панель, похожее на приложение, по внешнему виду, похожее на гноме-панель. Я хотел бы использовать GTK для этого (хотя я изучал QT), предпочтительно, используя Python.

Как я могу украсить окно таким образом, что к нему применяется цвет/градиент/растровый/SVG?

Это было полезно?

Решение

Одним из способов является использование стилей (пример ниже использует строки встроенных стилей):

#!/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 ()

Однако установка цветового градиента с помощью GTKRC кажется специфичным для двигателя.

Редактировать: Вот минималистичный пример GTKRC с растянутым фоновым изображением:

pixmap_path "/home/foo/images"
style "bar" {
    engine "pixmap" {
        image {
            function = FLAT_BOX
            file     = "test.png"
            stretch  = TRUE
        }
    }
} widget "*foo" style "bar"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top