2014-02-11 9 views
1

Я пишу приложение GTK3 на python и хочу динамически изменять цвет фона в Entry на основе некоторых других условий приложения. Вся документация, которую я нашел, соглашается с тем, что 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") 

И так далее.

С уважением

Смежные вопросы