使用python将CSS样式设置为GtkBox

时间:2014-10-31 06:34:10

标签: python css python-3.x pygtk

是否可以改变对象GtkBox的背景颜色?到目前为止,我在其他对象中运行的所有样式,但GtkBox不适合我,你知道为什么吗?这是我的代码

self.Ventana = self.builder.get_object("ventana")
self.Header= self.builder.get_object("header")
self.Ventana.set_name('MyWindow')
self.Header.set_name('header')
self.style_provider = Gtk.CssProvider()
self.css=open(self.ruta+'/css/estilos.css','rb')
self.css_data = self.css.read()
self.style_provider.load_from_data(self.css_data)
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

/*********CSS STYLES *********/
#MyWindow {
    background-color: #1d1d1d;
}
/*i try whit: #MyWindow #header, #MyWindow GtkBox */
#header{
    background-color: #ffffff;
    border-bottom: 1px solid white;
}

1 个答案:

答案 0 :(得分:1)

问题是并非所有gtk小部件都会绘制自己的背景。然后由底层小部件确定背景。使用gtk + 3.12为some widgets更改了此行为。

因此,更改Gtk.Box的背景颜色不适用于版本< gtk + 3.12 。如果您使用的是旧版本,则另一种方法是在Gtk.Box下使用Gtk.Viewport并更改视口的颜色。

把它放到一些代码中:

box = Gtk.Box()
viewport = Gtk.Viewport()
viewport.add(box)
#and the CssProvder, StyleContext,...

CSS:

GtkViewport {
    background-color: red;
)