CSS GTK+ 中的样式
CSS Styling in GTK+
好的,我最近开始在 C 中使用 GTK+ 进行编程。
我的代码中有一个 GdkToggleButton,我想用 css 添加样式。
我在这里 https://developer.gnome.org/gtk3/stable 阅读了几乎所有的 GTK3+ 文档,但没有发现适合我的情况。
实际上有一部分关于 CSS 的文档,但我找不到实际解析 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);
您可以使用 gtk_css_provider_load_from_data()
加载程序中嵌入的自定义 CSS。 GtkCssProvider一般是怎么加载CSS.
然后您获得 GtkWidget 的样式上下文并对其调用 add_provider()
。使用 APPLICATION
优先级;这就是您要添加的内容(特定于应用程序 CSS)。
此外 save()
调用也不是必需的。
好的,我最近开始在 C 中使用 GTK+ 进行编程。 我的代码中有一个 GdkToggleButton,我想用 css 添加样式。 我在这里 https://developer.gnome.org/gtk3/stable 阅读了几乎所有的 GTK3+ 文档,但没有发现适合我的情况。 实际上有一部分关于 CSS 的文档,但我找不到实际解析 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);
您可以使用 gtk_css_provider_load_from_data()
加载程序中嵌入的自定义 CSS。 GtkCssProvider一般是怎么加载CSS.
然后您获得 GtkWidget 的样式上下文并对其调用 add_provider()
。使用 APPLICATION
优先级;这就是您要添加的内容(特定于应用程序 CSS)。
此外 save()
调用也不是必需的。