开发板目录 /usr/lib/fonts/ 中的字体文件 msyh.ttc 的介绍【微软雅黑(Microsoft YaHei)】
本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。
本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。
问:运行 ls /usr/lib/fonts/ 发现有一个名叫 msyh.ttc 的字体文件,能介绍下msyh.ttc不?
msyh.ttc
是 微软雅黑(Microsoft YaHei) 字体的 TrueType Collection (TTC) 格式文件。它是 Windows 操作系统中常见的 中文无衬线字体,专门设计用于清晰地显示简体中文文本,当然也能显示英文。
1. msyh.ttc
详细信息
- 字体名称:微软雅黑(Microsoft YaHei)
- 文件格式:TTC(TrueType Collection)
- 适用语言:简体中文、英文
- 提供商:微软(Microsoft)
- 文件位置:
- Windows:通常位于
C:\Windows\Fonts\msyh.ttc
- Linux:如果你在
/usr/lib/fonts/
发现了msyh.ttc
,可能是手动复制或安装的
- Windows:通常位于
2. TTC
(TrueType Collection)是什么?
.ttc
是 TrueType Collection(TrueType 字体集)格式,它允许多个 TrueType 字体 共用一个文件。相比单个 .ttf
,TTC 主要用于:
- 减少磁盘占用(多个相似字体共享字形数据)
- 提供多个字体变体(如 Regular、Bold 等)
通常 msyh.ttc
里面包含:
- 微软雅黑 Regular(普通字体)
- 微软雅黑 Bold(加粗字体)
- 可能包含其他变体
3. msyh.ttc
在 Linux 的应用
如果 Qt 运行环境设置了:
export QT_QPA_FONTDIR=/usr/lib/fonts/
那么 Qt 应用会自动从 /usr/lib/fonts/
目录加载 msyh.ttc
作为默认字体。
如果想手动测试字体,可以用 fc-list
命令检查:
fc-list | grep msyh
如果输出类似:
/usr/lib/fonts/msyh.ttc: Microsoft YaHei,微软雅黑:style=Regular
说明系统成功识别了 msyh.ttc
。
如果想让 msyh.ttc
在 Qt 里生效,可以在代码里指定:
QFont font("Microsoft YaHei", 12);
QApplication::setFont(font);
或者如果 msyh.ttc
不能被系统识别,你可以手动加载:
int fontId = QFontDatabase::addApplicationFont("/usr/lib/fonts/msyh.ttc");
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
if (!fontFamilies.isEmpty()) {
QFont font(fontFamilies.at(0));
QApplication::setFont(font);
}
4. 如何在 Linux 上安装 msyh.ttc
如果 msyh.ttc
还没有安装,你可以:
-
从 Windows 复制
- 进入
C:\Windows\Fonts\
- 复制
msyh.ttc
到 Linux/usr/lib/fonts/
或/usr/share/fonts/truetype/
- 运行
fc-cache -fv
更新字体缓存
- 进入
-
检查字体是否生效
fc-list | grep "Microsoft YaHei"
5. msyh.ttc
与 msyh.ttf
的区别
msyh.ttc
是字体集合,通常包含多个变体(Regular、Bold)msyh.ttf
是单个 TrueType 字体,只包含 Regular 或 Bold 其中一种
结论
msyh.ttc
是微软雅黑字体,适用于中文和英文。- 它是 TrueType Collection (TTC) 格式,包含多个字体变体。
- 在 Qt/Linux 上可以直接使用,但有时需要
fc-cache -fv
刷新字体缓存。 - 如果
msyh.ttc
存在于/usr/lib/fonts/
,Qt 应用可能已经在使用它作为默认字体。