Получить цвета текущего стиля GTK - PullRequest
2 голосов
/ 16 июля 2011

Я использую PyGTK и хочу получить цвета виджета (например, bg color), я запускаю такой код:

gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257)
widget = gtk.HBox() ## for example
style = widget.get_style()
for i in range(5):
    print i, gdkColorToRgb(style.bg[i])

Но он не дает цвета моей текущей темы gtk (стиль).Похоже, что для темы gtk по умолчанию (моя текущая тема темная, хотя этот код дает светлые цвета), я использую ArchLinux и PyGTK 2.24.0 (GTK 2.24.5)

1 Ответ

3 голосов
/ 17 сентября 2011

Я просто наткнулся на ту же проблему, увидел ваш вопрос и нашел решение: вы должны подождать, пока виджет не будет реализован, например, как это:

def print_style(widget):
    style = widget.get_style()
    for i in range(5):
        print i, gdkColorToRgb(style.bg[i])
gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257)
widget = gtk.HBox() ## for example
widget.connect('realize', print_style)
...