当前位置: 首页 > news >正文

使用qt读取系统字体库,并进行英文名称映射

映射函数:

// 创建中文字体到英文名称的映射表
QMap<QString, QString> createFontMapping() {QMap<QString, QString> mapping;mapping[QString::fromLocal8Bit("宋体")] = "simsun.ttc";mapping[QString::fromLocal8Bit("黑体")] = "simhei.ttf";mapping[QString::fromLocal8Bit("微软雅黑")] = "msyh.ttc";mapping[QString::fromLocal8Bit("微软雅黑粗体")] = "msyhbd.ttc";mapping[QString::fromLocal8Bit("微软雅黑细体")] = "msyhl.ttc";mapping[QString::fromLocal8Bit("微软正黑体")] = "msyhbd.ttc";mapping[QString::fromLocal8Bit("楷体")] = "simkai.ttf";mapping[QString::fromLocal8Bit("新宋体")] = "simsun.ttc";mapping[QString::fromLocal8Bit("仿宋")] = "simfang.ttf";mapping[QString::fromLocal8Bit("幼圆")] = "SIMYOU.TTF";mapping[QString::fromLocal8Bit("隶书")] = "SIMLI.TTF";mapping[QString::fromLocal8Bit("华文细黑")] = "STXIHEI.TTF";mapping[QString::fromLocal8Bit("华文楷体")] = "STKAITI.TTF";mapping[QString::fromLocal8Bit("华文宋体")] = "STSONG.TTF";mapping[QString::fromLocal8Bit("华文仿宋")] = "STFANGSO.TTF";mapping[QString::fromLocal8Bit("华文中宋")] = "STZHONGS.TTF";mapping[QString::fromLocal8Bit("华文彩云")] = "STCAIYUN.TTF";mapping[QString::fromLocal8Bit("华文琥珀")] = "STHUPO.TTF";mapping[QString::fromLocal8Bit("华文新魏")] = "STXINWEI.TTF";mapping[QString::fromLocal8Bit("华文隶书")] = "STLITI.TTF";mapping[QString::fromLocal8Bit("华文行楷")] = "STXINGKA.TTF";mapping[QString::fromLocal8Bit("方正舒体")] = "FZSTK.TTF";mapping[QString::fromLocal8Bit("方正姚体")] = "FZYTK.TTF";mapping[QString::fromLocal8Bit("思源黑体")] = "Source Han Sans CN.ttf";mapping[QString::fromLocal8Bit("思源宋体")] = "Source Han Serif SC.ttf";mapping[QString::fromLocal8Bit("文泉驿微米黑")] = "WenQuanYi Micro Hei.ttf";mapping[QString::fromLocal8Bit("苹方")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("华文黑体")] = "STHeiti.ttf";// 注意:其他“华文”字体如“华文楷体”等已定义,不再重复
mapping[QString::fromLocal8Bit("冬青黑体简")] = "Hiragino Sans GB.ttf";mapping[QString::fromLocal8Bit("兰亭黑-简")] = "Lantinghei SC.ttf";mapping[QString::fromLocal8Bit("翩翩体-简")] = "Hanzipen SC.ttf";mapping[QString::fromLocal8Bit("手札体-简")] = "Hannotate SC.ttf";mapping[QString::fromLocal8Bit("宋体-简")] = "Songti SC.ttf";mapping[QString::fromLocal8Bit("娃娃体-简")] = "Wawati SC.ttf";mapping[QString::fromLocal8Bit("魏碑-简")] = "Weibei SC.ttf";mapping[QString::fromLocal8Bit("行楷-简")] = "Xingkai SC.ttf";mapping[QString::fromLocal8Bit("雅痞-简")] = "Yapi SC.ttf";mapping[QString::fromLocal8Bit("圆体-简")] = "Yuanti SC.ttf";mapping[QString::fromLocal8Bit("汉仪旗黑")] = "HYQihei.ttf"; // 注意:有多个粗细,但家族名一致mapping[QString::fromLocal8Bit("汉仪大宋简")] = "HYDaSongJ.ttf";mapping[QString::fromLocal8Bit("汉仪楷体")] = "HYKaiti.ttf";mapping[QString::fromLocal8Bit("汉仪家书简")] = "HYJiaShuJ.ttf";mapping[QString::fromLocal8Bit("汉仪PP体简")] = "HYPPTiJ.ttf";mapping[QString::fromLocal8Bit("汉仪乐喵体简")] = "HYLeMiaoTi.ttf";mapping[QString::fromLocal8Bit("汉仪小麦体")] = "HYXiaoMaiTiJ.ttf";mapping[QString::fromLocal8Bit("汉仪程行体")] = "HYChengXingJ.ttf";mapping[QString::fromLocal8Bit("汉仪黑荔枝")] = "HYHeiLiZhiTiJ.ttf";mapping[QString::fromLocal8Bit("汉仪雅酷黑W")] = "HYYaKuHeiW.ttf";mapping[QString::fromLocal8Bit("汉仪大黑简")] = "HYDaHeiJ.ttf";mapping[QString::fromLocal8Bit("汉仪尚魏手书")] = "HYShangWeiShouShuW.ttf";// 补齐常见 Windows 中文字体映射mapping[QString::fromLocal8Bit("新细明体")] = "PMingLiU.ttf";mapping[QString::fromLocal8Bit("细明体")] = "MingLiU.ttf";mapping[QString::fromLocal8Bit("标楷体")] = "DFKai-SB.ttf";mapping[QString::fromLocal8Bit("Arial Unicode MS")] = "Arial Unicode MS.ttf";mapping[QString::fromLocal8Bit("Times New Roman")] = "Times New Roman.ttf";mapping[QString::fromLocal8Bit("Courier New")] = "Courier New.ttf";mapping[QString::fromLocal8Bit("Tahoma")] = "Tahoma.ttf";mapping[QString::fromLocal8Bit("Verdana")] = "Verdana.ttf";mapping[QString::fromLocal8Bit("Georgia")] = "Georgia.ttf";mapping[QString::fromLocal8Bit("Trebuchet MS")] = "Trebuchet MS.ttf";mapping[QString::fromLocal8Bit("Impact")] = "Impact.ttf";mapping[QString::fromLocal8Bit("Comic Sans MS")] = "Comic Sans MS.ttf";mapping[QString::fromLocal8Bit("Lucida Console")] = "Lucida Console.ttf";mapping[QString::fromLocal8Bit("Lucida Sans Unicode")] = "Lucida Sans Unicode.ttf";// 常见补充中文字体mapping[QString::fromLocal8Bit("方正兰亭黑")] = "FZLanTingHei.ttf";mapping[QString::fromLocal8Bit("方正报宋")] = "FZBaoSong.ttf";mapping[QString::fromLocal8Bit("方正姚体")] = "FZYaoti.ttf";mapping[QString::fromLocal8Bit("方正舒体")] = "FZShuTi.ttf";mapping[QString::fromLocal8Bit("方正仿宋")] = "FZFangSong.ttf";mapping[QString::fromLocal8Bit("方正楷体")] = "FZKaiTi.ttf";mapping[QString::fromLocal8Bit("方正书宋")] = "FZShuSong.ttf";// 其他开源或常用字体mapping[QString::fromLocal8Bit("霞鹜文楷")] = "LXGW WenKai.ttf";mapping[QString::fromLocal8Bit("霞鹜文楷屏显")] = "LXGW WenKai Screen.ttf";mapping[QString::fromLocal8Bit("快乐体")] = "Kuaile.ttf";mapping[QString::fromLocal8Bit("得意黑")] = "Smiley Sans.ttf";mapping[QString::fromLocal8Bit("得意黑体")] = "Smiley Sans.ttf";// Adobe 字体系列mapping[QString::fromLocal8Bit("Adobe 黑体-Std")] = "Adobe Heiti Std.ttf";mapping[QString::fromLocal8Bit("Adobe 宋体-Std")] = "Adobe SongStd.ttf";mapping[QString::fromLocal8Bit("Adobe 楷体-Std")] = "Adobe Kaiti Std.ttf";mapping[QString::fromLocal8Bit("Adobe 仿宋-Std")] = "Adobe Fangsong Std.ttf";// 补充 macOS / 跨平台但可能存在于 Windows 的字体mapping[QString::fromLocal8Bit("SF Pro Text")] = "SF Pro Text.ttf";mapping[QString::fromLocal8Bit("SF Pro Display")] = "SF Pro Display.ttf";mapping[QString::fromLocal8Bit("Noto Sans CJK SC")] = "Noto Sans CJK SC.ttf"; // 思源黑体另一种名称mapping[QString::fromLocal8Bit("Noto Serif CJK SC")] = "Noto Serif CJK SC.ttf"; // 思源宋体另一种名称// 特殊用途字体mapping[QString::fromLocal8Bit("Symbol")] = "Symbol.ttf";mapping[QString::fromLocal8Bit("Webdings")] = "Webdings.ttf";mapping[QString::fromLocal8Bit("Wingdings")] = "Wingdings.ttf";mapping[QString::fromLocal8Bit("MS Gothic")] = "MS Gothic.ttf";mapping[QString::fromLocal8Bit("Gulim")] = "Gulim.ttf"; // 韩文mapping[QString::fromLocal8Bit("MS Mincho")] = "MS Mincho.ttf"; // 日文明体// 补充“等线”系列(Windows 内置无衬线中文字体)mapping[QString::fromLocal8Bit("等线")] = "Deng.ttf";mapping[QString::fromLocal8Bit("等线 细体")] = "Dengl.ttf";mapping[QString::fromLocal8Bit("等线 粗体")] = "Dengb.ttf";mapping[QString::fromLocal8Bit("等线 Light")] = "Dengl.ttf";// 补充“微软雅黑”变体mapping[QString::fromLocal8Bit("微软雅黑 Light")] = "Microsoft YaHei Light.ttf";mapping[QString::fromLocal8Bit("微软雅黑 Bold")] = "Microsoft YaHei Bold.ttf";mapping[QString::fromLocal8Bit("微软雅黑 UI")] = "Microsoft YaHei UI.ttf";// 补充“苹方”不同字重(若已安装)mapping[QString::fromLocal8Bit("苹方-极细体")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("苹方-细体")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("苹方-中等体")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("苹方-常规体")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("苹方-中粗体")] = "PingFang SC.ttf";mapping[QString::fromLocal8Bit("苹方-纤细体")] = "PingFang SC.ttf";// 补充其他汉仪字体(常见)mapping[QString::fromLocal8Bit("汉仪中宋简")] = "HYZhongSongJ.ttf";mapping[QString::fromLocal8Bit("汉仪长仿宋")] = "HYZhangFangSongJ.ttf";mapping[QString::fromLocal8Bit("汉仪细行楷")] = "HYXingKaiTiJ.ttf";mapping[QString::fromLocal8Bit("汉仪雪君体")] = "HXueJunTiJ.ttf";// 补充方正字体mapping[QString::fromLocal8Bit("方正静蕾体")] = "FZJingLei.ttf";mapping[QString::fromLocal8Bit("方正胖娃体")] = "FZPangWa.ttf";mapping[QString::fromLocal8Bit("方正北魏楷书")] = "FZBeiWeiKai.ttf";mapping[QString::fromLocal8Bit("方正剪纸")] = "FZJianZhi.ttf";return mapping;
}// 使用示例
QString getEnglishFontName(const QString& chineseName) {static QMap<QString, QString> mapping = createFontMapping();return mapping.value(chineseName, chineseName); // 找不到则返回原名
}

调用:

#include <QFontComboBox>connect(ui.fontComboBox, &QFontComboBox::currentFontChanged, this, &CVRTextSymbolDialog::_slotFontChanged);void _slotFontChanged(const QFont font)
{string strFont = getEnglishFontName(font.family()).toLocal8Bit() ;
}

这个的 strFont 就是英文映射的字体库名称,可以在程序其他地方调用

 

http://www.hskmm.com/?act=detail&tid=28077

相关文章:

  • gitlab配置aws的s3作为docker镜像的存储
  • 阿克曼函数
  • 10.10
  • shell脚本监控ssl证书到期时间
  • AI如何通过卫星图像识别刺猬栖息地
  • rust 模块和引用
  • moectf2025-reverse-wp
  • 国标GB28181网页直播平台EasyGBS如何构建智慧社区一体化视频监控方案?
  • TypeScript Declaration Merging(声明合并)使用说明
  • 第七章 手写数字识别V5
  • 关于根据距离列表排序sql
  • 2025年高适配铝型材厂家推荐:深圳市方达铝业领衔,3家企业覆盖多场景
  • 注册c模块到lua中使用
  • DNA权威书籍
  • 220V转5V500mA非隔离电源芯片WT5105
  • linux基础-find查找
  • 220V转12V电机水泵供电驱动WT5105
  • 禁止或启用键盘修改输入法
  • ansys安装时无法修改安装路径--灰色无法修改
  • Qwen2.5-VL技术报告
  • 攸米知识付费小程序管理系统:一站式知识变现解决方案
  • citus设置密码
  • 实践与认识及其发展规律
  • 2025 年最新推荐氨糖厂家排行榜:四期临床验证 + 蓝帽认证,帮你选出优质氨糖软骨素 / 氨糖钙 / 氨糖钙片厂家
  • 完整教程:阿里云瓴羊发布企业级AI智能体服务平台AgentOne,成就AI时代的“超级公司”
  • 利用MCP Server革新软件测试:更智能、更高效的自动化
  • 数据结构-设计一个算法删除单链表L(有头节点)中的最小结点。
  • 可视化图解算法63:单词搜索
  • Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
  • 基于多平台协同的芯片制造数据治理体系架构与实践