我最近更新了一些程序到 gtk3(deadbeef gtk3 插件、pcmanfm-gtk3、l3afpad),但有一件事确实困扰着我:
为什么状态栏的高度是gtk2版本的三倍?
显然不是因为有更多的信息或更大的字体 - 两个版本的文本是相同的,只是 gtk3 中状态栏的 10 px 边距。所以我想“嘿,gtk3 有一些不错的 CSS,也许我可以使用 gtk.css 或 settings.ini 来调整它” - 事实证明,不,不是真的。 gtk.css 中的任何内容,例如
GtkStatusbar { margin:0px; margin-top:0px; margin-bottom:0px; }
可悲的是,什么也没做。
所以我尝试在 pcmanfm 中使用 GtkInspector。当我选择整个 Statusbar 元素(您必须选择左右标签之间的空白,只有 10 px 宽)并且检查属性时,我看到为 GtkWidget 定义的所有边距都有一个 10 px 值(底部除外)最上面的是 6)。现在,如果我双击该值并将“所有边距”设置为 0,它会立即给我一个 gtk2 状态栏 - 很高兴!
所以我知道这是可能的,但我只是还没有找到一种方法将其放入 gtk.css 中。我绝望地尝试:
GtkWidget { margin:0px; margin-top:0px; margin-bottom:0px; }
但我真的没想到它会起作用——所以当然没有。
我也尝试过在线搜索解决方案,但最终我只得到了一些非常具体的提示,将 eclipse 从 gtk3 降级到 gtk2 以节省屏幕空间或这修复 engrampa 的补丁,删除这些边距。
天哪,可能有一些 GNOME 的 GUI 工具可以在大约 5 秒内完成此操作,而我一直在寻找错误的东西。
答案1
这有点帮助:
gtk_widget_set_margin_top(GTK_WIDGET(statusbar), 0);
gtk_widget_set_margin_bottom(GTK_WIDGET(statusbar), 0);