使用CssProvider样式化GTK小部件.Set_name不起作用



我将buttonA的名称设置为"但不能达到它在CSS文件与css选择器:#buttonA,什么是错误的=?我不能设置按钮的边框,只有标签,对于标签,我不能设置按钮内部的背景颜色,我只能设置背景图像我使用GTK 3

#!/usr/bin/gjs
const Gtk = imports.gi.Gtk;
const Gdk = imports.gi.Gdk;
Gtk.init(null);
const window = new Gtk.Window();
const box=new Gtk.Box ({orientation:1}),
buttonA=new Gtk.Button ({label:"A"}),
buttonB=new Gtk.Button ({label:"B"}),
buttonC=new Gtk.Button ({label:"C"}),
display=Gdk.Display.get_default (),
screen=display.get_default_screen(),
provider= new Gtk.CssProvider();
provider.load_from_path('test.css');
Gtk.StyleContext.add_provider_for_screen(screen,provider,0);
buttonA.set_name("buttonA");
buttonB.set_name("buttonB");
buttonC.set_name("buttonC");
box.add(buttonA);
box.add(buttonB);
box.add(buttonC);
window.add(box);
window.set_title("CSS Example");
window.connect('destroy', () => { Gtk.main_quit(); });
window.set_size_request(640, 480);
window.show_all();
Gtk.main();

test.css文件

button {font-family:Arial; font-size:20px;}
button > label {border-radius:10px; border: 1px solid black; background-color:orange;}
#buttonA {font-size:60px;}

如果您在构建时设置name属性,或者可能只是在应用CSS提供程序之前,它似乎可以正常工作:

const buttonA = new Gtk.Button({
label: 'A',
name: 'buttonA',
});

相关内容

最新更新