Linux 如何更改vala中Gtk.标签的字体大小?
我是Vala/Gtk新手,我正在尝试更改Gtk.Label的字体大小,但我找不到一个好方法 我发现我可以像这样使用标记:Linux 如何更改vala中Gtk.标签的字体大小?,linux,gtk3,vala,Linux,Gtk3,Vala,我是Vala/Gtk新手,我正在尝试更改Gtk.Label的字体大小,但我找不到一个好方法 我发现我可以像这样使用标记: var welcome_message = new Gtk.Label ("<span size='17000'>Hello</span>"); welcome_message.set_use_markup (true); var welcome_message=new Gtk.Label(“你好”); 欢迎\u message.se
var welcome_message = new Gtk.Label ("<span size='17000'>Hello</span>");
welcome_message.set_use_markup (true);
var welcome_message=new Gtk.Label(“你好”);
欢迎\u message.set\u使用\u标记(true);
但这似乎有点老土。
正确的方法是什么?您可以尝试使用css,我认为最近这是首选方法。给标签一个类,然后加载css。如果您要更改标签的字体大小,我打赌您还将自定义其他内容,以便css可能对您有用。谢谢lethalman和Nemeq 我认为这可能会对某些人有所帮助,所以这里有一个如何将css与Vala结合使用的小示例
using Gtk;
public class StyleApp1 : Gtk.Window
{
public StyleApp1()
{
this.title = "Style app example";
this.set_border_width (10);
this.set_position (Gtk.WindowPosition.CENTER);
this.set_default_size (350, 200);
this.destroy.connect (Gtk.main_quit);
var screen = this.get_screen ();
var css_provider = new Gtk.CssProvider();
string path = "styleapp1.css";
// test if the css file exist
if (FileUtils.test (path, FileTest.EXISTS))
{
try {
css_provider.load_from_path(path);
Gtk.StyleContext.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER);
} catch (Error e) {
error ("Cannot load CSS stylesheet: %s", e.message);
}
}
var box = new Gtk.Box (Gtk.Orientation.VERTICAL, 10);
this.add (box);
var label = new Gtk.Label ("Thank you");
box.add (label);
var label2 = new Gtk.Label ("Stackoverflow");
label2.get_style_context().add_class("my_class");
box.add (label2);
}
}
static int main(string[] args) {
Gtk.init(ref args);
StyleApp1 win = new StyleApp1();
win.show_all();
Gtk.main();
return 0;
}
以及styleapp1.css文件:
GtkWindow {
font-size: 17px;
}
.my_class {
color: pink;
}
注意:如果您在屏幕上使用添加提供程序而不是添加提供程序。您必须为每个要自定义的小部件使用add_provider。其他问题的可能重复仅适用于GTK 2。(我给它贴上了这样的标签。)CSS是这个问题的正确答案。我同意,CSS是一个很好的方法。您也可以使用pango属性,但它实际上并不比标记更简单:
pango.AttrList attrs=new pango.AttrList();attrs.insert(Pango.attr_scale_new(Pango.scale.LARGE));label.attributes=attrs代码>