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 并且工作...