表现为显示几个黑框,完全看不出什么。
排查步骤:
第一步 首先排查是不是系统库问题,先看英文能否正常显示,将qml代码中的中文改成英文字符。
发现也无法正常显示。
注意观察出错信息,
从 Qt 5.15 开始,Qt 不再自带字体,需要手动添加字体库。您可以按照以下步骤来解决这些问题:
1. 安装字体
可以从 DejaVu Fonts 或其他字体源(例如思源黑体、WenQuanYi)下载合适的字体文件(如 .ttf
格式),并将它们放入 Qt 的字体目录中。
2. 创建字体目录并添加字体
第一步可以跳过,直接利用系统中的库;
在Qt 安装路径中创建 fonts
目录,并将字体文件放入其中:
mkdir /usr/local/Qt-6.5.3/lib/fonts
cp /usr/share/fonts/truetype/ubuntu/*.ttf /usr/local/Qt-6.5.3/lib/fonts/
再次编译,运行,英文显示正常。
所以应该是中文字库的问题。
为了正确显示中文字符,将中文字体库加入到Qt的字体目录。可以从常用的字体库(如SimSun、SimHei、Noto Sans CJK或Source Han Sans)中选择适合的字体文件,并将其放置到Qt的字体目录中。例如,将字体文件复制到 /usr/local/Qt-6.5.3/lib/fonts
目录。
接下来的问题是如何找到中文字符,最简单的方法是从windows系统拷贝一个simsun.ttf
获取 simsun.ttf
文件:
- 从 Windows 系统中获取该文件。它通常位于
C:\Windows\Fonts\simsun.ttf
。 - 将
simsun.ttf
文件复制到的 Linux 系统上。
重新运行程序,可以正常显示中文。
总结:
正常显示的字体库中的内容为