我一直试图在Symbian Qt应用程序(4.6)中使用自定义字体渲染一段时间。对于大多数字体和大多数字形,使用类似于this的方法都可以正常工作。
但是,对于大多数字体而言,许多字形都被错误地渲染 - 实际上,呈现了错误的字形。我尝试过使用相同加载方法的Symbian C ++应用程序,并且确实正确呈现。所以,这看起来像是一个Qt错误,事实上所有的血腥细节都是here。
有人可以建议在Qt 4.6中使用Symbian ^ 3设备进行完整的TTF字体渲染的解决方法吗?
答案 0 :(得分:1)
虽然我没有使用Symbian Qt Apps的经验,但我去年在双环境Qt应用程序(Win32和Mac OS X)中工作了几个月,该应用程序主要用于字体渲染。
QFont渲染-in Win32 / Mac OS X-通常运行顺畅,但如果你有高级字体渲染要求,你可能会遇到几个严重的问题:
a)无法确定特定字体中是否存在特定的unicode字符(即,不可能完全禁用字符替换机制 - 您只能提供替换提示)
b)如果你尝试加载某些特定的(坏的?)TTF / OTF字体以供你的应用程序独占使用(即加载未安装的字体以在你的应用程序中使用它们)应用程序崩溃并且崩溃在Qt库代码(它试图双重释放一些缓冲区)。 这是一个非常罕见的错误:在我测试的90.000字体中只发生了5-10种字体,但如果你的应用程序的主要任务与字体渲染有关,它仍然很烦人。
我的解决方法是使用FreeType2 (open source)库:
- >它永远不会崩溃(它只会在坏字体上返回错误)
- >它比QFont渲染速度快4-5倍
FreeType2不是QFont的直接替代品,它确实需要花费一些额外的时间来理解一些基本(低级)概念,但是如果你真的需要一个快速可靠的库来渲染任何TTF / OTF(+ other)字体变为灰色或bw图像,我强烈推荐它作为最终选择。
答案 1 :(得分:0)
最终的答案是这是一个QT错误,但很高兴它在QT 4.7.2中得到修复。现在,只需要等到Ovi商店接受诺基亚QT 4.7.2应用程序....