c - 如何使用 css 降低 gtk 对话框的标题栏高度?

标签 c ubuntu gtk3 gtk4

我无法降低 gtk-dialog(colorChooser 和文件选择对话框)的标题栏高度。

.titlebar {
  min-height: 25px;
  padding: 0px;
  margin: 0px;
}
它可以降低 gtk 窗口的标题栏高度,但不适用于 Gtk 对话框。请问有人可以查吗?

最佳答案

我对此做了一些调查。首先,看起来您实际上想要设置您的自定义 CSS 定义来引用“标题栏”而不是“标题栏”。您可能需要引用通过连接到以下链接解决的类似问题:
“https://unix.stackexchange.com/questions/257163/how-to-reduce-title-bar-height”
在使用此链接中的信息时,我在编写的示例程序中测试了各种最小尺寸,以查看 CSS 属性对与颜色选择器对话框相关联的标题栏的影响。引用您的最小高度要求,我将以下数据加载到 CSS 提供程序对象中并重建了我的程序。

headerbar
{
    min-height: 0px;
    padding-left: 2px;
    padding-right: 2px;
}
headerbar entry, headerbar spinbutton, headerbar button, headerbar separator
{
    margin-top: 2px;
    margin-bottom: 2px;
    min-height: 25px;
}   
比较标准对话框和具有 25 像素高度的对话框之间的颜色选择器对话框,可以在下图中看到按钮大小的细微差别。
Standard header bar vs customized header bar #1
只是为了在标题栏中显示一个稍微极端的小部件尺寸设置,我将最小尺寸更改为 60 像素,以显示自定义 CSS 值的影响。
Window and dialog CSS size effect
如您所见,标题栏效果被夸大了,在对话框和窗口中都可以看到。
补充说明。
回应有关尝试此方法并产生不必要的链式效应的评论,这似乎是因为颜色选择器对话框是一个独立的小部件,它是在构建程序时创建的,因为在使用 GTK 检查器时可以可视化。
Sample chooser dialog in inspector
由于该小部件似乎没有任何 CSS 定义,因此无法直接调整与该小部件关联的标题栏。因此,作为一个实验,我修改了我最初列出的自定义 CSS,以过滤掉其他具有标题栏小部件的小部件。因此,在我的示例程序中,我向窗口小部件添加了一个类,如下所示。
gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(window)),"Colour");
然后,我修改了自定义 CSS 以仍然修改颜色选择器对话框小部件的标题栏及其子小部件,但忽略对窗口标题栏的任何修改。
:not(.Colour) headerbar
{
    min-height: 0px;
    padding-left: 2px;
    padding-right: 2px;
}
:not(.Colour) headerbar button, :not(.Colour) headerbar separator
{
    margin-top: 2px;
    margin-bottom: 2px;
    min-height: 60px;
}
当我应用这些额外的修改时,我确实得到了没有对窗口进行标题栏修改的结果,但确实得到了颜色选择器对话框的标题栏修改。
Desired header bar activity
实际上,要使这种过滤在仅修改颜色选择器小部件的标题栏而任何其他标题栏被单独保留的情况下起作用,需要将相同的类添加到具有标题栏且不是颜色选择器对话框小部件。这有点乱,但我找不到另一种方法。
问候,
克雷格

关于c - 如何使用 css 降低 gtk 对话框的标题栏高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72007773/

相关文章:

linux - 如何打开编写Python程序的页面,编译并运行它并查看输出?

gtk - 空地 aboutDialog 没有关闭

c - 是否可以刷新/更新 TreeView 中的数据?

c - C中小端到大端

c - 如何从c中的文件中读取日期

opengl - 如何在 MonoDevelop (Linux) 中运行 OpenGL 程序?

linux - 我怎样才能让 pyinstaller 在 Ubuntu 上工作?

python - 如何将焦点放在 Gtk.TreeView 的特定单元格上?

c - 在 C 中,当没有任何内容可读时,读取函数 "know"是如何实现的?

c - 在 Ansi C 中 - 'decay' 在哪里定义,它发生的所有情况都在哪里记录?