linux - 为什么在嵌入式 linux 上运行的 Qt 应用程序的“ascender”行上方的字体会被削减?
问题描述
更新在其他测试之后,我验证了下面的这个问题与字体渲染中的一些问题有关。
所以最后我选择了一个更简单的解决方案:我编辑了将“上升”线向上移动的字体,现在所有符号都在这条线下。现在我可以正确看到所有符号了!
==================================================== ==========================
我在嵌入式设备上正确可视化字体 Helvetica Neue LT Std Font 时遇到了一些问题。问题是我看不到字体上升区域中的字符部分,例如我看不到字符“À”的重音。但也例如,字符“ê”上方的符号 ^ 被剪切。使用 fontdrop.info 检查字体我可以确认被剪切的字符部分是上升区域中的部分。
如果我在 PC 上运行该应用程序,它工作正常。我的嵌入式设备基于 iMx6 ULL 处理器。屏幕分辨率为 800x480。
我确认显示的字体是正确的。我尝试编辑将符号移动到“上升”行下方的“À”上方的字体,这样符号就可见了。所以我可以确认问题出在符号的可视化或上升区域中的字符部分的可视化中。
主文件
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QFont>
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
QFont font("HelveticaNeueLTStd");
// font.setStretch(QFont::Condensed);
app.setFont(font);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}
main.qml
import QtQuick 2.6
import QtQuick.Window 2.2
Window {
visible: true
width: 800
height: 480
// FontLoader { id: fixedFont; name: "HelveticaNeueLTStd" }
Text {
id: textEdit
text: qsTr("212Àê\u222B")
font.pointSize: 24
verticalAlignment: Text.AlignVCenter
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
// font.family: fixedFont.name
}
}
也许不是 Qt 问题,而是我的嵌入式系统上某些字体管理配置的问题?请帮忙!
解决方案
推荐阅读
- php - 更改中间件终止功能的响应
- excel - Macbook 的 VBA - 宏不保存输出文件
- android - 在约束布局中以编程方式将约束添加到视图
- matlab - 给定两点通过其中心旋转线
- html - SVG 多边形元素仅给出图像的一半
- android - 如何使用 Jetpack 导航组件修复 CollapsingToolbarLayout 不与 RecyclerView 折叠?(导航界面)
- python - 如何将一个变量分配给txt文件的两列
- c++ - QT:小部件中默认文本的多语言支持
- android - 将 retrained_graph.pb 转换为 tflite 模型
- mongodb - 在 Loopback 3 中创建扁平的单一关系