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

Nah*_*eel 2 gtk themes vala

我试图用 vala 覆盖 gtk 按钮的背景颜色,但它不适用于某些主题。所以,这段代码

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

看起来像这样:

适应(我想要的)

适应症

阿德维塔

阿德维塔

氛围

氛围

那么我错过了什么?

and*_*abs 5

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
}
Run Code Online (Sandbox Code Playgroud)