2011-03-02 122 views
2

我一直試圖讓自定義字體呈現在Symbian的Qt應用程序(4.6)工作了一段時間。對於大多數字體和大多數字形,使用類似於this的方法都可以很好地工作。不正確的字體渲染

然而,對於大多數的字體字形的許多錯誤地呈現的 - 實際上,錯字形呈現。我已經使用相同的加載方法嘗試了Symbian C++的應用程序,並且正確呈現。所以,這看起來像是一個Qt錯誤,事實上所有的細節都是here

任何人都可以提出一個解決方法,以獲得完整的TTF字體渲染使用Qt 4.6的Symbian^3臺設備的工作?

回答

1

雖然我有Symbian的Qt應用程序的經驗,我的工作,去年在其中有主要做的字體渲染的雙重環境Qt應用程序(Win32的&的Mac OS X)數月。

QFont渲染-in的Win32 /的Mac OS X - 一般運行平穩,但如果你有先進的字體渲染要求,你可能會遇到一些和嚴重的問題:

一)這是不可能找到,如果一個特定的Unicode字符確實存在於特定的字體中(例如,不可能完全禁用字符替換機制 - 只能提供替換提示)

b)如果您嘗試加載某些特定的(壞?)TTF/OTF字體爲你的應用程序獨佔使用(即加載未安裝的字體在你的應用程序中使用它們),應用程序崩潰,崩潰在Qt庫代碼中(它試圖以雙倍免費的一些緩衝區)。 這是一個非常罕見的錯誤:我測試過的90.000種字體中只有5-10種字體發生在我身上,但如果應用程序的主要任務與字體渲染有關,它仍然很煩人。

我的解決方法是使用FreeType2 (open source)庫:

- >它永遠不會崩潰(這只是壞的字體會返回一個錯誤)

- >這比QFont渲染

快約4-5倍

FreeType2不是QFont的直接替代品,在使用前需要花費一些額外的時間來理解一些基本的(低級別)概念,但是如果您確實需要快速可靠的庫來呈現任何TTF/OTF (+其他)字體轉換爲灰色或黑色圖像,我強烈建議將其作爲最終選擇。

0

最終的答案是,這是一個QT的bug,但令人高興它是固定在QT 4.7.2。現在,只需要等到Ovi商店接受諾基亞QT 4.7.2應用....