无法在GTK +中将CSS设置为指定的小部件

Sek*_*met 1 gtk vala gtk3

我正在使用Vala和GTK +,现在我正在尝试将自定义CSS添加到指定的小部件.我可以添加fe.backgroudn到GtkWidget但不适用于#sidebar

#sidebar { //It doesn't work                                                           
    color: white;                                                                
}                                                                       

GtkWindow {  // It works                                                                    
    background-color: red;                                                                        
}   
Run Code Online (Sandbox Code Playgroud)

我正在为这个小部件添加类:

sidebar = new Gtk.Label("Hello");
sidebar.set_name("sidebar");
Run Code Online (Sandbox Code Playgroud)

它改变了GtkWindow的颜色,但不是这个标签.

有任何想法吗?

小智 5

我没有在Vala中编程,但你应该在StyleContext中添加类.这是在C中

   sidebar = gtk_label_new ("Hello');
   gtk_style_context_add_class ( gtk_widget_get_style_context ("mysidebar"), sidebar);
Run Code Online (Sandbox Code Playgroud)

另外,样式"侧边栏"已经在GtkStyle中定义.您应该将CSS中的"侧边栏"更改为其他内容(侧边栏由视图,工具栏等使用)但是如果您持久化,则语法应为:

   .mysidebar {
       #anything
   }
Run Code Online (Sandbox Code Playgroud)