LINUX.ORG.RU

Gtk+ стилизация виджета

 ,


0

2

Здрасьте! Дамы и господа, леди и джентельмены, учу С и GTK+, хочу сделать валидацию, которая будет окрашивать границу виджета в красный (или фон). Есть код:

GtkWidget* myEntry = gtk_entry_new();
g_signal_connect(myEntry,"key-release-event",G_CALLBACK(check),NULL);
в check пробовал:
GtkStyleContext *myStyle = gtk_widget_get_style_context(GTK_WIDGET(entryDate));
GdkRGBA fuck = { 1.0, 0.0, 0.0, 0.0 };
g_object_set(GTK_WIDGET(entryDate), GTK_STYLE_PROPERTY_BACKGROUND_COLOR, fuck);
и пробовал:
GtkStyleContext *myStyle = gtk_widget_get_style_context(entryDate);
GtkCssProvider *myCss = gtk_css_provider_new();

gtk_css_provider_load_from_path(myCss,"entryDate.css", NULL);
gtk_style_context_add_provider(myStyle,GTK_STYLE_PROVIDER(myCss), GTK_STYLE_PROVIDER_PRIORITY_USER);
entryDate.css:
.entry {
  background: #669999;
  border-width: 3px;
  border-color: red;
}

но эти приемы, как я понимаю, требуют отрисовывать виджет вновь. А как сделать (и возможно ли вообще в GTK) изменить стиль виджета «на лету»?

Пописываешь стили в css

а в коде (это не C, но в C аналогично):

Gtk.StyleContext ctx = widget.get_style_context ();
ctx.remove_class ("rem_class_name");
ctx.add_class ("add_class_name");

anonymous
()
Ответ на: комментарий от mittorn

А есть что-то лучшее и не прибитое гвоздями к Си++?

monk ★★★★★
()

какой-то у вас виджет не стильный… попробуйте добавить больше смузи!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.