在GTK中,如何获取小部件的原始背景颜色?
我这样做:
self.origbg = self.style.bg[gtk.STATE_NORMAL]
然后在我的事件框中,我通过以下方式把背景颜色改成它:
self.modify_bg(gtk.STATE_NORMAL, color)
但是,颜色实际上是改变了!我看到的并不是我从self.style.bg中得到的state_normal颜色。在我的Windows系统上,它的颜色稍微浅了一点。我该怎么才能得到真正的背景颜色呢?
3 个回答
0
我用这个来获取GTK3中一个输入框的默认背景颜色。
context = entry.get_style_context()
default_background = context.get_background_color(Gtk.StateType.NORMAL)
3
如果你想避免监听地图事件,你应该先调用 realize()
,然后再获取颜色。我知道这个问题已经存在很久了,但我只是想分享一下,以防有人像我一样遇到这个问题。:)
1
连接到这个小部件的“map-event”信号(当这个小部件第一次在窗口中显示时会发送这个信号);这是你第一次可以读取真实主题颜色的时候。