我正在打印一些复杂的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,但都不能提供我需要的任何帮助。