在GTK中,如何获取小部件的原始背景颜色?

1 投票
3 回答
2185 浏览
提问于 2025-04-15 13:41

我这样做:

    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”信号(当这个小部件第一次在窗口中显示时会发送这个信号);这是你第一次可以读取真实主题颜色的时候。

撰写回答