Gtk应用程序-CSS样式GTK小部件无法正常工作

时间:2018-08-16 09:35:21

标签: python gtk

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

它是一个非常基本的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中,仅应用了全局蓝色背景。我的其他样式定义都没有应用。

我缺少什么?我需要在选择器中更具体吗?那我怎么知道层次结构?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

文档在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