I'm trying to use CSS to style a GtkLabel. I would like to change the color and font size of the label. Here is my C code:
#include <gtk/gtk.h>
int main(int argc, char *argv[]) {
gtk_init(&argc, &argv);
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget *label = gtk_label_new("Label");
GtkCssProvider *cssProvider = gtk_css_provider_new();
gtk_css_provider_load_from_path(cssProvider, "theme.css", NULL);
gtk_style_context_add_provider(gtk_widget_get_style_context(window),
GTK_STYLE_PROVIDER(cssProvider),
GTK_STYLE_PROVIDER_PRIORITY_USER);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_container_add(GTK_CONTAINER(window), label);
gtk_widget_show_all(window);
gtk_main();
}
Here is my CSS in theme.css
, currently this should only change the font color:
GtkLabel {
color: green;
}
I compile with:
gcc `pkg-config gtk+-3.0 --cflags` test.c -o test `pkg-config --libs gtk+-3.0`
However, when I run the code I get black text. If I change theme.css
to use a widget name or CSS class instead of GtkLabel
, it still doesn't work. However, if I use *
instead of GtkLabel
, it works (although I don't want this to apply to everything). This means that the C code should be correct and something is wrong with the CSS.