在Windows上的GTK中,如何更改整个应用程序的背景颜色?

时间:2009-08-06 22:18:25

标签: python windows gtk colors pygtk

根据http://www.pygtk.org/docs/pygtk/gtk-constants.html,有五种状态类型:STATE_NORMALSTATE_INSENSITIVE等。我想设置表格的背景颜色,HBox,VBox,无论如何,我我们试图设定各种状态的每种颜色:

    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等没有颜色,但是透明吗?谁提供了应用程序的一般颜色呢?

3 个答案:

答案 0 :(得分:2)

主要是google-fu(这里没有窗口),发布作为“答案”主要是为了稍微好一点的格式。看看是否尝试了像here那样的成熟的gtkrc带来了成果。基于thisthis的位置似乎有所不同 - 因此除非有人采用确定性方法找到它,否则filemon可能是一种明智的做法。

作为这类应用的主要用户,我更喜欢我的gtkrc中的设置,而不是程序员认为“最好”的硬编码。

答案 1 :(得分:1)

这是因为VBox和Hbox没有关联的Window。 click here to see other widgets without windows。我会创建事件框并在事件框中添加HBox或VBox。

答案 2 :(得分:0)

更改样式后需要调用self.set_style(style)。我使用您的代码作为模板,添加该行使所有内容的背景变为绿色。