我正在从头开始学习 GTK4,使用 GTKBuilder XML 构造对象和 CSS 从文件中添加样式信息:
const char cssPath[] = "/a/path/that/is/confirmed/to_be/working.css";
GtkCssProvider * cssProvider = gtk_css_provider_new();
gtk_css_provider_load_from_path(cssProvider, cssPath);
gtk_style_context_add_provider_for_display(gdk_display_get_default(), GTK_STYLE_PROVIDER(cssProvider), GTK_STYLE_PROVIDER_PRIORITY_USER);
当我使用通用 CSS 选择器时,我的样式更改会生效,如下所示:
box { background-color: white; }
/* box goes white as expected */
但是当我尝试使用它的 id="myBox" XML 属性来定位特定对象时,它不起作用:
box#myBox { background-color: white; }
/* no colour change happens */
或者
#myBox { background-color: white; }
/* no colour change happens here either */
我的 XML .ui 文件中的相关部分是:
<object class="GtkBox" id="myBox">
<property name="halign">GTK_ALIGN_CENTER</property>
<child>
<object class="GtkLabel" id="centreLabel">
<property name="single-line-mode">true</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
</object>
</child>
</object>
也许我误解了 CSS 选择器的工作方式,相对于使用 GtkBuilder 实例化的对象?我已阅读文档,因此我将不胜感激任何人可以在这里提供的任何帮助!
干杯。