【发布时间】:2012-01-24 01:09:49
【问题描述】:
我正在向 QTextEdit 打印一些花哨的 UTF-8 字符,即右箭头 0x2192 和闪电 0x21AF。这在像 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,它们似乎都没有对我的情况提供任何帮助。
【问题讨论】: