2014-10-31 5 views
0

은 개체 GtkBox의 배경색을 변경 할 수 있습니까? 지금까지 모든 스타일 나는 다른 오브젝트에서 잘 작동했지만 GtkBox는 나를 위해 작동하지 않습니다. 왜 그런지 알고 있습니까? 이것은 내 코드입니다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; 
) 

는 일부 코드에 넣어하려면

관련 문제