2014-10-31 45 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; 
)