2009-08-18 60 views
1

我这样做:,如何获取widget的原始正常颜色?

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

,后来在我的eventboxes我做改变的bgcolor它:

self.modify_bg(gtk.STATE_NORMAL, color) 

然而,实际颜色变化!这不是我查看self.style.bg所得到的state_normal颜色。在我的Windows上,它的色调稍淡。我如何获得真实的背景颜色?

回答

1

连接到小部件的“地图事件”信号(当小部件首次显示在窗口中时发送);这是您第一次阅读真实的主题颜色。

+1

入门本应更好地记录 – Claudiu 2009-08-21 05:25:47

3

如果你想避免收听地图事件,你应该打电话realize(),然后获取颜色。我知道这是一个古老的问题,但只是为了让人们像我一样碰到它而做出贡献。 :)

0

我使用它来获取默认的背景色为GTK3

context = entry.get_style_context() 
    default_background = context.get_background_color(Gtk.StateType.NORMAL)