Gtk 应用程序 - CSS 样式 GTK 小部件不起作用



我正在构建一个简单的 GTK 应用程序,但我在样式设置时遇到了问题。 这是截图

这是一个非常基本的Gtk.Dialog,里面有一些Gtk.Box,里面有Gtk.Label和Gtk.Entry。我想为对话框内容留出一些边距,并将标签左对齐。

我读到我需要用 css 来做,但我在工作时遇到了麻烦。我像这样加载我的样式表:

style_provider = Gtk.CssProvider()
style_provider.load_from_data(GTK_STYLE)
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_USER
)

这是我对 css 文件的过期:

GTK_STYLE = """
* {
background: blue;
-GtkDialog-content-area-spacing: 10;
}
.label {
background: red;
}
GtkLabel {
color: red;
}
GtkDialog {
background: red;
}
"""

在此 css 中,仅应用全局蓝色背景。没有应用我的其他样式定义。

我错过了什么?我需要在选择器中更具体吗?那我怎么知道层次结构呢?

谢谢你的帮助。

文档在CSS nodes下列出了样式属性,例如参见 GtkLabel 的文档: https://developer.gnome.org/gtk3/stable/GtkLabel.html

所以我相信为了设置所有 GtkLabel 的颜色,你必须编写(未经测试(:

label {
color: red;
}

有关更多信息,请转到 https://developer.gnome.org/gtk3/stable/chap-css-overview.html

最新更新