2009-08-18 2 views
1

Я делаю это:в GTK, как мне получить исходный нормальный цвет bg виджета?

self.origbg = self.style.bg[gtk.STATE_NORMAL] 

, а затем в моих eventboxes изменить BGCOLOR ему делать:

self.modify_bg(gtk.STATE_NORMAL, color) 

Однако цвет на самом деле изменения! Это не цвет state_normal, который я получаю от просмотра self.style.bg. На моей Windows это немного светлее. Как получить реальный цвет фона?

ответ

1

Подключиться к сигналу «событие-карта» виджета (которое отправляется, когда виджет сначала отображается в окне); это первый раз, когда вы можете прочитать настоящие цвета темы.

+1

это должно быть документировано лучше – Claudiu

3

Если вы хотите избежать прослушивания события карты, вы должны позвонить realize(), а затем получить цвета. Я знаю, что это старая проблема, но просто хотел внести свой вклад, если бы люди столкнулись с ней, как я. :)

0

Я использую это, чтобы получить цвет фона по умолчанию для входа в GTK3

context = entry.get_style_context() 
    default_background = context.get_background_color(Gtk.StateType.NORMAL) 
Смежные вопросы