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

标签 css linux ubuntu gtk gtk3

很难说出这里问的是什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或言辞激烈,无法以目前的形式合理回答。如需帮助澄清此问题以便可以重新打开,visit the help center .




8年前关闭。




有人可以输入一个简单的示例来使用 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,"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,并使用非零值报告错误。

关于css - 如何使用自定义 CSS 设置 GTK+ 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14410821/

相关文章:

javascript - CSS类不适用于特定场景

FireFox 7.01 的 CSS 兼容性问题

html - 不允许元素破坏 bootstrap 3

linux - 如何获得较旧的Chrome Dev(不稳定)或Beta版本?

ubuntu - libnvidia-compute 更新后 NVML 驱动程序/库不匹配

jquery - jqGrid 上的 prettyCheckable 不起作用

linux - 完整的 64K 是否用于创建的每个管道?

linux - 使用 sed 时在日期字段之间转义分隔符

django - 找出 Django 代码在哪个用户下运行

php - SQLSTATE[HY000] : General error: 13 Can't get stat of './pics' (Errcode: 13 - Permission denied)