好吧,我最近開始用C編寫GTK +。 我的代碼中有一個GdkToggleButton,我想用css添加樣式。 我已經閱讀了幾乎所有的GTK3 +文檔https://developer.gnome.org/gtk3/stable,但沒有找到適合我的案例。 其實有關於CSS的文檔的一部分,但我找不到實際解析CSS文件的部分。GTK中的CSS樣式+
我想要做的就是用CSS或任何其他方法更改GdkToggleButton的顏色。
我想知道把CSS文件放在哪裏以及如何解析它並將它添加到Widget中。
我實際上可以得到GdkRGBA(顏色)的按鈕,但更改沒有效果。 這裏是我如何更改GdkRGBA的按鈕。
GdkRGBA *color ;
GtkWidget *button;
GtkStyleContext *context;
color = gdk_rgba_copy (color); // I don't know to initialize GdkRGBA :(
context = gtk_widget_get_style_context(button);
button = gtk_toggle_button_new_with_label ("Hello World");
gtk_style_context_get_color(context,
GTK_STATE_FLAG_NORMAL,
color);
gdk_rgba_parse(color,
"red");
解決
gtk_css_provider_load_from_path (cssProvider,
"/home/shadow_m2/code.css",
NULL);
gtk_style_context_add_provider (context,
GTK_STYLE_PROVIDER(cssProvider),
GTK_STYLE_PROVIDER_PRIORITY_USER); // I had used wrong priority on first try
gtk_style_context_save (context);
您正在尋找GtkCssProvider。 – andlabs
我也試過了,它加載了一個css文件,但不知道如何使用GtkCssProvider設計一個窗口小部件。 @andlabs –
您可以使用GtkCssProvider從內存中加載CSS。爲了將它應用到小部件,請參閱GtkStyleContext(所有GtkWidgets都有)。 – andlabs