gpt4 book ai didi

fonts - 文本显示不正确 - 字符是正方形 - 未找到可疑字体

转载 作者:行者123 更新时间:2023-12-01 02:15:28 26 4
gpt4 key购买 nike

我有一个运行 Linux 的嵌入式 ARM 系统。我已经成功地在我的目标上构建并安装了 Qt 5.3.1,我能够构建 Qt 应用程序并运行/调试它们。请注意,我的目标没有安装 X,并且正在使用的 QPA 是 eglfs(如果这很重要)。

屏幕上显示的任何文本都显示为一系列方形字符。我怀疑字体没有被正确定位/加载。我找不到关于该主题的太多体面的文档。

  • 如果我创建一个 QFontDatabase 对象并查询它,我有固定宽度、衬线和无衬线字体系列可用于各种磅值(或者我猜从我所看到的,请参阅下面的代码及其输出)。
  • 我把我的 Windows 机器的 Arial.ttf 的副本放在我相信 Qt 正在搜索字体的目录中的目标上,但无济于事。

  • 不幸的是,没有可用于解决此问题的错误消息!所以,我有以下问题:
  • 有没有办法从 Qt 获取更多关于它在哪里寻找字体、何时找不到字体等的信息(如调试消息)?
  • 是否有某种字体后备方案?我对这个主题不太了解,但是如果 Arial.ttf 是唯一可用的字体并且应用程序尝试加载 Helvetica,它是选择“最接近的字体”,还是只是放弃并在屏幕上放置框?
  • 我主要用 Qt 示例进行测试。是否有工具可以报告特定应用程序所需的各种字体,以便我可以确保它们符合目标?
  • ……?也许知道更多的人可能能够提供其他有用的信息。


  • 这是我运行的一些代码,以查看是否可以了解 Qt 认为它对可用字体具有的内容:
    QFontDatabase db;
    foreach (const QString &fam, db.families()) {
    foreach (const QString &style, db.styles(fam)) {
    std::cout << fam.toStdString() << std::endl;
    QString sizes;
    foreach (int points, db.smoothSizes(fam, style))
    sizes += QString::number(points) + " ";
    std::cout << sizes.trimmed().toStdString() << std::endl;
    }
    }

    和输出:
    Monospace
    Normal
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Italic
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Oblique
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Sans Serif
    Normal
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Italic
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Oblique
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Serif
    Normal
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Italic
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72
    Oblique
    6 7 8 9 10 11 12 14 16 18 20 22 24 26 28 36 48 72

    最佳答案

    看来您缺少字体渲染引擎。

    Where is Qt looking for fonts?



    根据 Qt embedded reference document on fonts ,

    If fontconfig is not available, e.g. in dedicated embedded systems ..., Qt will fall back to using QBasicFontDatabase. In this case, Qt applications will look for fonts in Qt's lib/fonts/ directory



    由于您能够列出它们,看来这些字体确实在 lib/fonts/ 中。 Qt 的子目录。
    现在您需要确保您拥有 FreeType 2 字体引擎,Qt 使用该引擎进行字体渲染。你用 -qt-freetype 编译了吗?启用?看 configure page了解更多信息。

    Is there some sort of font fallback scheme?... does it choose the "closest font"?



    没有字体“距离”这样的东西。我希望只要找到字体,就会以某种优先级加载它们。

    Is there a tool to report the variety of fonts that a particular application requires so that I can ensure they're on the target?



    我不确定这是否可能。但是您可以查看可用的字体,使用 QConfig Qt 源代码的“工具”子目录中的工具。
    QConfig snapshot

    关于fonts - 文本显示不正确 - 字符是正方形 - 未找到可疑字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143766/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com