确定QFont是否支持特定的UTF-8字符

6

我正在打印一些复杂的UTF-8字符,例如右箭头0x2192和闪电符0x21AF,到一个QTextEdit中。在像Ubuntu这样的现代操作系统上工作得很好,但在Windows XP等操作系统上失败了,因为字体似乎不支持这些UTF-8字符,只会显示占位符。

有没有办法找出一个QFont实例的当前字体是否支持给定的字符,以便我可以回退到类似于“-->”这样更简单的字符来表示右箭头?

我发现Qt 4.8有一个QRawFont类,它确实有一个QRawFont::supportsCharacter()方法,正是我想要的,但是我现在无法使用4.8版本,最多只能使用4.6或4.7版本。我查看了实现代码,他们调用了QFontEngine::canRender()方法。然而,QFontEngine似乎是一个从外部无法访问的类。在4.7版本中,我能找到的唯一类似的类是QFontEngineInfo和QFontEnginePlugin,但都不能提供我需要的任何帮助。

1个回答

6

1
没错,就是这个!谢谢!显然我在那些与字体相关的类的丛林中有点迷失了方向,所以我错过了那个不起眼的方法 :)。 - DerManu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接