gpt4 book ai didi

css - 如何将 css 应用于 Gtk3-css 中的所有子元素?

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:14 25 4
gpt4 key购买 nike

嵌套组件的问题:

我正在尝试将背景应用到 GtkComboBoxText。

我正在获取小部件的上下文并将 CSS 应用于它:

 * { background: red } 

这不会改变 GtkComboBoxText 的颜色。但它适用于 GtkButton 和 GtkLabel。

查看 GtkInspector,GtkComboBoxText 似乎具有嵌套控件,如 GtkToggleButton 和 GtkEntry,但上面的 CSS 并未应用于它们。如果我通过 gtk_container_forall(..) 手动遍历所有嵌套组件并挑选出选定的组件,那么背景着色就会起作用。但我似乎无法找到一种方法将 CSS 一次应用于 GtkComboBoxText 并让它渗透到所有子项?

这可能吗?

测试片段

可以在 repo 中找到测试片段: https://github.com/LeoUfimtsev/LeoGtk3/tree/3_GtkCombo_background

运行:

  git clone https://github.com/LeoUfimtsev/LeoGtk3.git
make
./main

尝试过的事情:

 * {background:red}
* {background-color:red} //no impact

GtkComboBoxText * { background: red}
GtkComboBoxText * { background-color: red}

请注意:

如果我运行代码片段,然后打开 CSS 检查器,然后应用:

 * {background: red} 

对于每个单独的子小部件:

GtkComboBoxText
- GtkToggleButton <<
- GtkTreeMenu <<

然后背景着色工作。

enter image description here

编辑 - 使用样式类?

似乎一种方法是将样式类添加到小部件,然后从全局 css 中选择它。一个例子在这里: https://github.com/LeoUfimtsev/LeoGtk3/blob/057884368bf38a626dbaac5c575c15a5e1c93f2f/main.c#L35

但是,如果您要在 GTK 之上实现一个图形库,这是不切实际的,因为您需要处理 1000 个类。

最佳答案

你试过吗?

GtkComboBoxText * {
background-color: red;
}

如果 GTK+ 不支持上述 css,它支持 GtkBin * {/* styles here */>,它将样式应用于 GtkBin 的所有子级所以你可以把你的 GtkComboBoxText 放在 GtkBin 元素中(它可能还需要 GtkComboBox 在层次结构中首先所以层次结构是 GtkBin > GtkComboBox GtkComboBoxText).

关于css - 如何将 css 应用于 Gtk3-css 中的所有子元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29477917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com