2014-12-22 64 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被觸發後刷新文本,它會正確顯示。

在上面的例子中,字形只會在加載字體後顯示。