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

前端之家收集整理的这篇文章主要介绍了如何使用自定义CSS设置GTK样式?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以用css为一个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,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,并使用非零值报告错误.

猜你在找的CSS相关文章