私は最近、CでGTK +でプログラミングを始めました。 私のコードにGdkToggleButtonがあり、CSSにスタイリングを追加したいと思います。 私はGTK3 +のドキュメントのほとんどをここでhttps://developer.gnome.org/gtk3/stableと読んだことがありますが、私のケースに合ったものは何も見つかりませんでした。 実際にCSSに関するドキュメントの一部がありますが、実際にCSSファイルを解析する部分が見つかりませんでした。CSSスタイルのGTK +
私がやりたいことは、CSSや他の方法でGdkToggleButtonの色を変更することです。
私はCSSファイルをどこに置くか、それを解析してウィジェットに追加する方法を知りたいと思います。
実際にボタンの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_data()
とあなたのプログラムに組み込まれたカスタムCSSを読み込むことができ
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