Gtk 按钮 override_background_color 在某些主题上不工作

Gtk Button override_background_color not working on some themes

我正在尝试用 vala 覆盖 gtk 按钮的背景颜色,但它在某些主题上不起作用。所以,这段代码

var b = new Button ();
b.label = "test";
b.margin = 10;
b.override_background_color (Gtk.StateFlags.NORMAL, color (yellow));

看起来像这样:

Adapta(我想要的)

阿德维塔

氛围

那我错过了什么?

gtk_widget_override_background_color() 已弃用,不再使用。使用 CSS 代替:

var css = "* { background: #FFFF00; }";
var p = new Gtk.CssProvider();
try {
    p.load_from_data(css, css.length);
    b.get_style_context().add_provider(p, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} catch (GLib.Error err) {
    // handle err
}