从Gtk.FontButton设置Pango.FontDescription

从Gtk.FontButton设置Pango.FontDescription,gtk,vala,pango,Gtk,Vala,Pango,在我的首选项对话框中,我有一个Gtk.font按钮供用户选择字体,稍后我从get_font_name字符串创建一个新的Pango.fontdescription。问题是字体的大小从未设置过 var font = new Pango.FontDescription (); var font_name = Window.SETTINGS.get_string ("room-font"); font.from_string (font_name); stdout.puts (@"Font: $font

在我的首选项对话框中,我有一个Gtk.font按钮供用户选择字体,稍后我从get_font_name字符串创建一个新的Pango.fontdescription。问题是字体的大小从未设置过

var font = new Pango.FontDescription ();
var font_name = Window.SETTINGS.get_string ("room-font");
font.from_string (font_name);
stdout.puts (@"Font: $font_name, Size: $(font.get_size())");
此打印字体:Sans 12,大小:0

for from_字符串表示大小是以点为单位的十进制数大小,或者可选地后跟单位修饰符px表示绝对大小。这似乎表明SAN 12中的大小格式化错误。但是for FontButton表示,如果要使用字体渲染某些内容,请将此字符串与from_字符串一起使用


这里缺少什么?

Pango.FontDescription.from_string是一个静态方法;它返回一个新的Pango.FontDescription。它不会更改字体,因此仍具有默认值,默认大小为0。我无法理解为什么它是一个静态方法而不是构造函数。

我真不敢相信我错过了这一点。。。谢谢。这是一个静态方法,因为PangoFontDescription是一个装箱类型,而不是对象。