当前位置: 首页 > 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.gsyq.cn/news/18231.html

相关文章:

  • 国标GB28181网页直播平台EasyGBS如何构建智慧社区一体化视频监控方案?
  • TypeScript Declaration Merging(声明合并)使用说明
  • 第七章 手写数字识别V5
  • 220V转5V500mA非隔离电源芯片WT5105
  • 智能提取表格从pdf, 图片 到 excel, csv
  • citus设置密码
  • 云原生docker离线二进制安装 - 详解
  • ARM芯片架构之CoreSight高效的系统架构规范
  • 如何设计10亿用户级的微博Feed流系统并应对100W QPS的挑战?
  • 2025 年铝门窗厂家推荐榜,系统 / 智能 / 断桥 / 窄边 / 定制 / 全景 / 阳光房 / 隐框 / 隔声 / 防火铝门窗公司推荐
  • 现代软件工程阅读和提问作业-1
  • 完整教程:【Spark+Hive+hadoop】人类健康生活方式数据分析
  • 微算法科技(NASDAQ:MLGO)基于任务迁移的弹性框架重塑动态扩缩容,赋能边缘智能计算
  • 达芬奇中文入门到精通视频教程DaVinci Resolve常用快捷键
  • 读书笔记:**Oracle 中的数字类型:怎么选?怎么用?**
  • 什么是Symbol?
  • 苹果应用上架全流程指南 iOS 应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验 - 教程
  • PyCharm 2025.1重磅升级:AI驱动开发+全功能免费核心,Python开发者必看
  • create dir or file in Qpython
  • 学习笔记——计算机程序设计
  • CAD文件处理控件Aspose.CAD教程:在 Python 中将 SVG 转换为 PDF
  • 电子打气泵方案(工作原理和组成以及功能参数)
  • 2025 年电源滤波器源头厂家最新推荐排行榜:精选优质国内品牌,覆盖单相 / 三相 / 直流等多类型产品直流/IEC插座式/定制化电源滤波器厂家推荐
  • 2025 年压力表厂家最新推荐排行榜重磅发布!聚焦耐腐蚀耐震性能,助力企业精准选优质产品数显/耐高温/数字/抗震/膜盒/隔膜压力表厂家推荐
  • Putty设置SSH隧道,隧道和代理的原理区别(KIMI)
  • Node.js基础库介绍与使用
  • gaussdb常用操作 - 吾辈当奋斗
  • Webpack与Vite原理深度解析
  • IStringLocalizer突然失效?线程的“失忆症”
  • c# 读取xml到datagridview