2014-12-22 43 views
0

我有一个字体,我想在我的QML源代码中使用图形。我加载的字体:QML预加载字体

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

然后显示与glyphicon:

Text { 
    font.family: glyphs.name 
    text: "\ue80a" 
} 

的问题是,有时FontLoader完成加载字体文件之前的文本元素将加载,我只是看到了空白的正方形而不是图标。

我也试过:

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

但是,这似乎并没有帮助。

+0

是的,它看起来是一个错误。我也无法在加载时触发'onStateChanged',也无法从网页或本地系统触发 – folibis

回答

1

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

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

问题是在加载字体之前呈现字符。如果我们只是在FontLoader.Ready被触发后刷新文本,它会正确显示。

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