Fonts 预加载字体

Fonts 预加载字体,fonts,qml,preload,Fonts,Qml,Preload,我有一个带有字形图标的字体,我想在我的QML源代码中使用它。我用以下内容加载字体: FontLoader { id: glyphs source: "fonts/glyphicons.ttf" } 然后显示一个带有以下内容的图示符图标: Text { font.family: glyphs.name text: "\ue80a" } 问题是有时文本元素将在FontLoader完成加载字体文件之前加载,而我只看到空白方块而不是图标。 我还尝试: Text {

我有一个带有字形图标的字体,我想在我的QML源代码中使用它。我用以下内容加载字体:

FontLoader {
    id: glyphs
    source: "fonts/glyphicons.ttf"
}
然后显示一个带有以下内容的图示符图标:

Text {
    font.family: glyphs.name
    text: "\ue80a"
}
问题是有时文本元素将在FontLoader完成加载字体文件之前加载,而我只看到空白方块而不是图标。

我还尝试:

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

但这似乎没有帮助。

我找到了一个简单的解决方法

FontLoader {
    id: glyphs
    source: "fonts/glyphicons.ttf"
}
Text {
    font.family: glyphs.name
    text: glyphs.status == FontLoader.Ready ? "\ue80a" : ""
}
问题是,字符是在加载字体之前呈现的。如果我们只是在触发
FontLoader.Ready
后刷新文本,它将正确显示


在上面的示例中,字形图标仅在加载字体后才会显示。

是的,它看起来像个bug。在从web或本地系统加载时,我也无法触发
onStateChanged