QML预加载字体

时间:2014-12-22 09:24:14

标签: fonts qml preload

我想在我的QML源代码中使用带字形的字体。我加载字体:

FontLoader {
    id: glyphs
    source: "fonts/glyphicons.ttf"
}

然后用:

显示一个glyphicon
Text {
    font.family: glyphs.name
    text: "\ue80a"
}

问题是有时Text Font元素会在FontLoader加载字体文件之前加载,我只看到空白方块而不是图标。

我也尝试过:

Text {
    visible: glyphs.status == FontLoader.Ready ? true : false
    font.family: glyphs.name
    text: "\ue80a"
}

但这似乎没什么帮助。

1 个答案:

答案 0 :(得分:1)

我找到了一个简单的方法。

FontLoader {
    id: glyphs
    source: "fonts/glyphicons.ttf"
}
Text {
    font.family: glyphs.name
    text: glyphs.status == FontLoader.Ready ? "\ue80a" : ""
}

问题是在加载字体之前渲染了角色。如果我们只是在触发FontLoader.Ready后刷新文本,它将正确显示。

在上面的示例中,glyphicon只会在加载字体后显示。