2009-08-06 30 views
1

根據http://www.pygtk.org/docs/pygtk/gtk-constants.html,有五種狀態類型:STATE_NORMAL,STATE_INSENSITIVE等。我想設置一個表格,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) 

沒有任何效果。唯一有效的是當我手動創建事件框,並專門使用現有的gtk.STATE_NORMAL顏色與其他顏色混合。不過,沒有任何干預的情況下,gtk創建的所有內容都不受影響。

要做到這一點,正確的方法是什麼?我不介意不得不製作一個gtkrc文件或其他。這是因爲hbox,vbox等沒有顏色,但透明嗎?那麼誰提供應用程序的一般顏色?

回答

2

主要是google-fu(這裏沒有窗口),發佈爲「答案」主要是爲了更好的格式。看看試驗像here這樣的成熟的gtkrc是否會帶來成果。該位置基於thisthis似乎有所不同 - 因此,除非有確定的方法找到它,否則filemon可能是一個明智的方法。

作爲這些類型的應用程序的主要用戶,我寧願從我的gtkrc中通過編程人員認爲「最好」的硬編碼進行設置。

+0

你可以把你的gtkrc放在一個pastebin或其他東西上,所以我可以看看如何做顏色w/it? – Claudiu 2009-08-06 23:36:12

+0

完成 - http://pastebin.ca/1520931 – 2009-08-07 02:19:22

+0

+1爲您的第二段。 – ptomato 2011-03-23 09:21:08

1

這是因爲VBox和Hbox沒有關聯的窗口。 click here to see other widgets without windows。我會創建事件框並在事件框中添加HBox或VBox。

+0

也沒有一個gtk.Button,但這個伎倆爲他們工作。 (或者它可以嗎?)。無論如何,在事件箱中包裝所有東西最終都會帶來非常難看的東西。我真的只是想以某種方式控制我的應用程序的主題 – Claudiu 2009-08-07 01:54:37

0

更改樣式後需要調用self.set_style(style)。我使用你的代碼作爲模板,並添加該行使所有內容的背景變成綠色。

相關問題