如何使用自定义CSS来设置GTK +的样式?

有人可以键入一个简单的例子,用CSS来devise一个GTK +小部件吗? 我无法弄清楚如何去看文档:

#include <gtk/gtk.h> int main(int argc,char *argv[]) { gtk_init(&argc,&argv); GtkWidget *window; GtkWidget *button; GtkCssProvider *cssProvider; gtk_css_provider_load_from_path(cssProvider,"./gtkExample2.css",NULL); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); button = gtk_button_new_with_label("GTK Button"); gtk_style_context_add_provider(gtk_widget_get_style_context(window),cssProvider,GTK_STYLE_PROVIDER_PRIORITY_USER); g_signal_connect_swapped(window,"delete-event",G_CALLBACK(gtk_widget_destroy),window); gtk_container_set_border_width(GTK_CONTAINER(window),20); gtk_container_add(GTK_CONTAINER(window),button); gtk_widget_show(window); gtk_widget_show(button); gtk_main(); return 1; } 

不知道GTK3中有关CSS样式的一件事情(除了开发人员喜欢修正事情(尊重CSS标准),而不是通过版本保持兼容性之外,它经常会中断)。

不过,我可以告诉你,这是错误的:

 g_signal_connect_swapped(window,"delete-event",G_CALLBACK(gtk_widget_destroy),window); 

当主窗口关闭时,你真的希望它停止GTK。 这是这样做的:

 g_signal_connect(window,"destroy", G_CALLBACK(gtk_main_quit), NULL); 

还有一句话是你在打电话

 gtk_widget_show(window); gtk_widget_show(button); 

当小部件树已经完成(即,你停止添加小部件的容器和顶层窗口中的容器),这可以简化为:

 gtk_widget_show_all(window); 

另请注意,一个工作的程序应该在成功时返回0,并使用非零值来报告错误。