2014-02-11 203 views
1

我正在Python中编写一个GTK3应用程序,并希望根据应用程序中的某些其他条件动态更改条目的背景颜色。我发现的所有文档似乎都认为CSS是实现这一目标的最佳方式,但这似乎既是过度的开销,也是比我想要的更持久。动态更改Gtk.Entry的背景颜色

我尝试过override_background_color(),但这改变了高亮颜色而不是输入字段中的空白空间。

有没有简单的方法来动态改变颜色?

+0

'override_background_color()'在这里工作('gtk3-3.11.5')。编辑:其实它似乎是主题依赖。我不确定哪个是主题的正确行为,但改变选择颜色的'override_background_color'看起来并不正确。无论如何,我猜CSS是唯一的选择。 – smani

+0

GtkEntry是一个小部件的地狱。真的很想得到一堆绘图层。您应该尝试使用css,根据状态向您的小部件添加类,并在css上静态指定类。 – erick2red

回答

0

我想你应该准备一个CSS提供任何多达标签根据需要,如:

.cond1 { 
    background-color: .... ; 
} 
.cond2 { 
    background-color: .... ; 
} 
.cond3 { 
    background-color: .... ; 
} 

那么你的代码中,每次需要一个颜色符合条件时,你只需指定一个名称窗口小部件,如:

widget.set_name("cond1") 

等。

Regards