根据http://www.pygtk.org/docs/pygtk/gtk-constants.html,有五种状态类型:STATE_NORMAL
,STATE_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等没有颜色,但是透明吗?谁提供了应用程序的一般颜色呢?
答案 0 :(得分:2)
主要是google-fu(这里没有窗口),发布作为“答案”主要是为了稍微好一点的格式。看看是否尝试了像here那样的成熟的gtkrc带来了成果。基于this和this的位置似乎有所不同 - 因此除非有人采用确定性方法找到它,否则filemon可能是一种明智的做法。
作为这类应用的主要用户,我更喜欢我的gtkrc中的设置,而不是程序员认为“最好”的硬编码。
答案 1 :(得分:1)
这是因为VBox和Hbox没有关联的Window。 click here to see other widgets without windows。我会创建事件框并在事件框中添加HBox或VBox。
答案 2 :(得分:0)
更改样式后需要调用self.set_style(style)
。我使用您的代码作为模板,添加该行使所有内容的背景变为绿色。