【发布时间】:2015-10-16 03:52:19
【问题描述】:
我想获得小部件的正常背景颜色(在本例中为 GtkHeaderBar)。我目前正在使用
style = self.get_titlebar().get_style_context()
获取样式,并且
color = style.get_property("background-color", Gtk.StateFlags.NORMAL)
获取与该样式关联的背景颜色。
但是它返回一个具有以下属性的Gkd.RGBA 对象:
Gdk.RGBA(red=0.000000, green=0.000000, blue=0.000000, alpha=0.000000)
但是如果我打开 GTK Inspector,选择 HeaderBar,然后转到样式属性,它会显示
background-color | rgb(57,63,63) | gtk-contained-dark.css:1568.29
我必须做什么才能获得这些相同的值?
编辑:
我正在尝试GtkStyleContext.render_background(),但没有成功:
surfc = Cairo.ImageSurface (Cairo.FORMAT_ARGB32, 10, 10)
contx = Cairo.Context(surfc)
style = self.get_titlebar().get_style_context()
backg = Gtk.render_background(style, contx, 10, 10, 10, 10)
surfc.write_to_png("test.png")
生成的文件test.png 是rgba(0, 0, 0, 0) 图像。
【问题讨论】: