2009-08-06 1 views
1

http://www.pygtk.org/docs/pygtk/gtk-constants.html에 따르면, STATE_NORMAL, STATE_INSENSITIVE 등 5 가지 상태 유형이 있습니다. 모든 유형의 모든 가능한 색상을 설정할려고했는데, HBox, VBox 등의 배경색을 설정하려고합니다.Windows의 GTK에서 전체 앱의 배경색을 변경하려면 어떻게해야합니까?

style = self.get_style() 
    for a in (style.base, style.fg, style.bg, 
       style.light, style.dark, style.mid, 
       style.text, style.base, style.text_aa): 
     for st in (gtk.STATE_NORMAL, gtk.STATE_INSENSITIVE, 
        gtk.STATE_PRELIGHT, gtk.STATE_SELECTED, 
        gtk.STATE_ACTIVE): 
      a[st] = gtk.gdk.Color(0, 34251, 0) 

아무런 효과가 없습니다. 어떤 효과가있는 유일한 것은 내가 수동으로 EventBoxes를 만들고 다른 GTK.STATE_NORMAL 색상을 사용하여 다른 색상과 혼합했을 때입니다. 내 개입없이 gtk에 의해 만들어진 모든 것들은 영향을받지 않았다.

이 작업을 수행하는 올바른 방법은 무엇입니까? 내가 gtkrc 파일을 만들지 않아도된다. hbox, vbox 등은 색상이 없지만 투명하기 때문에입니까? 그렇다면 응용 프로그램의 일반적인 색상은 누가 제공합니까?

답변

2

주로 google-fu (여기에는 windows가 없습니다)가 약간 더 나은 형식의 "답변"으로 게시됩니다. here과 같은 본격적인 gtkrc를 실험 해보면 과일이 나옵니다. thisthis을 기반으로 한 위치는 다양하기 때문에 누군가가 결정 론적 접근 방식을 찾지 못하면 filemon이 현명한 접근 방식이 될 수 있습니다.

대부분이 종류의 앱을 사용하는 사용자이므로 언제든지 프로그래머가 "최고"라고 생각한 것보다 내 gtkrc의 설정을 선호합니다.

+0

gtkrc을 붙여 넣을 수있는 바구니에 넣어두면 색상을 어떻게 처리 할 수 ​​있습니까? – Claudiu

+0

완료 - http://pastebin.ca/1520931 –

+0

+1 두 번째 단락. – ptomato

1

VBox와 Hbox에는 연결된 Window가 없기 때문입니다. click here to see other widgets without windows. 이벤트 상자를 만들고 이벤트 상자 안에 HBox 또는 VBox를 추가합니다.

+0

도 gtk.Button을 사용하지는 않지만,이 트릭이 그들에게 도움이되었습니다. (또는 아마?). 어쨌든, 이벤트 상자의 모든 것을 랩핑하는 것은 꽤 못생긴 일로 끝납니다. 난 그냥 내 응용 프로그램의 테마를 어떻게 든 제어하려고합니다. – Claudiu

0

스타일을 변경 한 후 self.set_style(style)으로 전화해야합니다. 귀하의 코드를 템플릿으로 사용하고 그 라인을 추가하면 모든 배경이 녹색으로 변합니다.