将字体加载到Pango

时间:2015-11-17 19:07:30

标签: c++ gtk pango fontconfig

我正在尝试将非系统字体加载到我的GTK应用程序中。我曾尝试使用pango来实现这一目标。这是我的代码:

string fontPath = "res/fonts/FreeSans.ttf";
const FcChar8 *fontFile = (const FcChar8*) fontPath.c_str();
FcBool fontAddStatus = FcConfigAppFontAddFile(FcConfigGetCurrent(), fontFile);
if(fontAddStatus)
{
    FcFontSet *fontSet = FcConfigGetFonts (FcConfigGetCurrent(), FcSetApplication);
    PangoFontDescription *desc = pango_fc_font_description_from_pattern(fontSet->fonts[0], false);
    pango_font_description_set_family(desc, "FreeSans");
    PangoAttribute *attr = pango_attr_font_desc_new(desc);
    PangoAttrList *attrs = gtk_label_get_attributes(GTK_LABEL(lbl_0));
    pango_attr_list_change(attrs, attr);
    pango_layout_set_attributes (gtk_label_get_layout(GTK_LABEL(lbl_0)), attrs);
}

当我运行该代码时,它给了我:

Pango-WARNING **:无法加载字体" FreeSans Not-Rotated 10",回到" Sans Not-Rotated 10",预计输出会很难看。 / p>

我该如何成功地做到这一点?

非常感谢

0 个答案:

没有答案