Я пытаюсь использовать override_background_color на некоторых виджетах GTK3, но они по-прежнему отображаются с цветом фона по умолчанию.
GtkRcStyle *rc_style;
GdkColor color;
color.red = 65535;
color.green = 0;
color.blue = 0;
rc_style = gtk_rc_style_new();
rc_style->bg[GTK_STATE_NORMAL] = color;
rc_style->color_flags[GTK_STATE_NORMAL] |= GTK_RC_BG;
gtk_widget_modify_style (widget, rc_style);
gtk_rc_style_unref (rc_style);
Используя библиотеку GDK :
GtkWidget *widget; //your widget
GdkColor color;
gdk_color_parse ("red", &color); //setting a color - you can also use RGB
gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &color); //modifying the background color of the widget
Полный список ссылок на GdkColor можно найти Документация разработчика GNOME .
Для gtk + 3 вы можете использовать gtk_css_provider (). Полное руководство и примеры можно найти на GTK + Forums .