2014-10-31 47 views
0

是否可以改变对象GtkBox的背景颜色?到目前为止,我在其他对象中运行良好的所有样式,但GtkBox不适用于我您知道为什么吗?这是我的代码用python设置CSS风格到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

问题是并不是所有的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; 
)