Qt中的字体渲染不正确(Symbian)

时间:2011-03-02 10:15:04

标签: qt symbian nokia true-type-fonts

我一直试图在Symbian Qt应用程序(4.6)中使用自定义字体渲染一段时间。对于大多数字体和大多数字形,使用类似于this的方法都可以正常工作。

但是,对于大多数字体而言,许多字形都被错误地渲染 - 实际上,呈现了错误的字形。我尝试过使用相同加载方法的Symbian C ++应用程序,并且确实正确呈现。所以,这看起来像是一个Qt错误,事实上所有的血腥细节都是here

有人可以建议在Qt 4.6中使用Symbian ^ 3设备进行完整的TTF字体渲染的解决方法吗?

2 个答案:

答案 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应用程序....