Gtk+3 Css 供应商不工作
Gtk+3 Css provider don't works
我正在尝试使用 css 提供程序在 GtkBox 的背景中添加图像,并添加标签文本样式,但没有任何反应。我尝试了很多不同的方法。
这是我的 custom.css:
GtkBox#Home_PrincipalScreen_table{
background-image: url("background.png");
}
GtkLabel#Home_Cooling_Tunnel1_Cooler_label1{
color: white;
}
GtkLabel#label_Avg_Temp_value{
color: red;
font-family: Segoe UI;
font-size: 25px;
}
GtkButton{color: blue;
font-size: 25px
}
这是我的 .c 文件:
GFile *file= g_file_new_for_path("custom.css");
GtkCssProvider *css_provider = gtk_css_provider_new();
if(!gtk_css_provider_load_from_file(css_provider, file, &error))
{
g_warning( "%s", error->message );
g_free( error );
return( 1 );
}
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), css_provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
更新:
小部件像 GtkButton 示例一样更改它的属性,但像 Home_PrincipalScreen_table 这样的特定小部件不会改变。
我的代码有什么问题?
问题是我没有在 glade 中定义小部件名称。 Css 提供者不是由 ID 定义的,而是由小部件名称定义的。
所以,我将 GtkBox#Home_PrincipalScreen_table
更改为 #Background
并将小部件名称定义为 Background
并且工作...
我正在尝试使用 css 提供程序在 GtkBox 的背景中添加图像,并添加标签文本样式,但没有任何反应。我尝试了很多不同的方法。
这是我的 custom.css:
GtkBox#Home_PrincipalScreen_table{
background-image: url("background.png");
}
GtkLabel#Home_Cooling_Tunnel1_Cooler_label1{
color: white;
}
GtkLabel#label_Avg_Temp_value{
color: red;
font-family: Segoe UI;
font-size: 25px;
}
GtkButton{color: blue;
font-size: 25px
}
这是我的 .c 文件:
GFile *file= g_file_new_for_path("custom.css");
GtkCssProvider *css_provider = gtk_css_provider_new();
if(!gtk_css_provider_load_from_file(css_provider, file, &error))
{
g_warning( "%s", error->message );
g_free( error );
return( 1 );
}
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), css_provider, GTK_STYLE_PROVIDER_PRIORITY_USER);
更新:
小部件像 GtkButton 示例一样更改它的属性,但像 Home_PrincipalScreen_table 这样的特定小部件不会改变。
我的代码有什么问题?
问题是我没有在 glade 中定义小部件名称。 Css 提供者不是由 ID 定义的,而是由小部件名称定义的。
所以,我将 GtkBox#Home_PrincipalScreen_table
更改为 #Background
并将小部件名称定义为 Background
并且工作...