【问题标题】:Determine whether a QFont supports a certain UTF-8 character判断一个 QFont 是否支持某个 UTF-8 字符
【发布时间】: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,它们似乎都没有对我的情况提供任何帮助。

【问题讨论】:

    标签: qt utf-8 fonts character


    【解决方案1】:

    canRender 也被QFontMetrics::inFont(QChar) 调用。

    【讨论】:

    • 是的,就是这样!谢谢!我显然在那个字体相关的类丛林中有点迷失了,所以我错过了那个不起眼的方法:)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多