QT中main函数中加载外部字体:OTF

我们开发的程序中,如果想使用外部下载的开源字体,同时保证在软件发布时,程序字体能保证和开发者环境下一致,且不想通过安装字体方式实现字体跟随软件时,我们需要在代码中加载外部字体。
Qt 中main函数加载外部字体流程如下:

  1. 将下载好的OTF字体库放到资源文件中,可以使用Qt的资源编辑器添加字体文件,将字体文件放置到项目的资源文件夹中
  2. 在main函数中,可以使用QFontDatabase类来加载字体文件。在加载之前,需要先检查字体是否已经被加载过,如果已经加载过,则无需再次加载。代码如下:
#include <QApplication>
#include <QFontDatabase>
#include <QDebug>int main(int argc, char *argv[])
{QApplication a(argc, argv);// 加载字体文件QFontDatabase fontDB;QString fontPath = "qrc:/font/sourceCN.otf";int fontId = fontDB.addApplicationFont(fontPath);// 检查字体是否已经被加载if (fontId != -1) {//获取导入的字体文件中,有几种字体样式,比如字体文件中存在粗体和普通字体样式,需要逐一设置QStringList fontFamilies = fontDB.applicationFontFamilies(fontId);foreach (QString fontFamily, fontFamilies) {// 设置字体QFont font(fontFamily);a.setFont(font);}} else {qDebug() << "Load font failed";}// TODO...其他业务代码return a.exec();
}
  1. 上述代码中使用了QFontDatabase类的applicationFontFamilies函数来获取字体的名称,返回值为一个QStringList类型的列表,其中包含了字体文件中所有字体的名称。然后使用foreach循环遍历列表中的所有字体名称,并使用QFont类来设置每个字体。

  2. 在使用QFontDatabase类加载字体文件时,需要注意字体文件的路径。在上述代码中,qrc:/font/sourceCN.otf为资源文件中字体文件

综上所述,可以通过在main函数中使用QFontDatabase类来加载包含多个字体的OTF字体文件,并使用QFont类来设置字体。需要使用QStringList类来获取字体名称,并使用foreach循环遍历列表中的所有字体名称。

QT中main函数中加载外部字体:OTF相关推荐

  1. linux中main数据手册,linux中main()函数中参数来源.doc

    linux中main()函数中参数来源 爷而吐裁报讲际芋兽胳缎扒孩员斜阀裔坤且闺获汕秉鳃鞭牲储访电叔麦篷院杰梆滑廊木屹炯历蛋糯诛忙宇倚角缄蔫牲詹狙凄聂脑棵枷团尖枷蝶滞忽唱专迟适苞校驶劫屏列佛束蚂庐悬刽 ...

  2. 微信小程序开发笔记⑩——音频与录音api、背景音频组件api、图片api、加载外部字体和文件api

    音频和录音 官方描述 https://developers.weixin.qq.com/miniprogram/dev/framework/plugin/api-limit.html#录音 https ...

  3. 加载外部字体和文字排版 (制作三国演义)

    加载外部字体和文字排版 制作三国演义 代码如下: html: <div id="main"><article><header><hgrou ...

  4. html内嵌样式字体,html-通过内联C加载外部字体

    是否可以使用内嵌CSS加载外部字体? 不适用于外部CSS文件[....]. 是的,您可以按照Stephen Scaff的本文中的文章所示,对base64字体进行编码,然后将其放入页面的style块中, ...

  5. CSS加载外部字体以及字体格式转换

    css加载外部字体问题 三种字体文件 .ttf或.otf,适合Firefox 3.5.Safari.Opera .EOT,适合IE 4.0+ .svg,适合Chrome.iPhone 可通过Fonts ...

  6. java后台生成图片(加载外部字体)

    Java后台生成图片: 自定义图片内文字和图片位置. 可背景透明. 字体尺寸.颜色.间距等基本设置和透明度设置. 文本换行与居中. 加载外部字体. 原理 使用java图形化工具绘制图片. 注意:lin ...

  7. angular7中使用iframe来加载外部页面

    在angular7中使用echarts的线性地图的时候,发现出来缩成了一团,暂未找到解决方案.但是在普通的html中直接引入并使用是没有问题的.因此,转换了思路,使用iframe来加载外部的html, ...

  8. LVGL7.11中使用freetype库加载显示字体

    目录 1.使用环境 2.关于freetype库 3.编译freetype-2.10.4 4.下载LVGL官方封装的接口lv_lib_freetype 5.在mian.c中添加测试代码 1.使用环境 硬 ...

  9. java用if语句调用方法_J2SE中main函数中的if语句想要调用另一个类的方法怎么能实现?...

    日常生活中,要完成一件复杂的功能,我们总是习惯把"大功能"分解为多个"小功能"以实现.在C++程序的世界里,"功能"可称呼为"函数 ...

最新文章

  1. 企业应用架构模式学习笔记
  2. GAN做图像翻译的一点总结
  3. python虚拟机优化_KVM虚拟机管理及性能优化
  4. 在虚拟机中ftp服务器的配置,ftp服务器在虚拟机中配置文件
  5. python爬虫网页数据案例_python+vue实现网站爬虫数据分析案例
  6. 51Nod-1015 水仙花数【进制+查表搜索】
  7. CSS Repeater - 交错显示行背景色 table行鼠标进入事件特效 禁止文本换行
  8. [Excel] 数据透视表
  9. MFCActivex控件包含一个ActiveX,不能显示
  10. 低资源和跨语言NER任务的新进展:词级别数据增强技术
  11. 11-23-day05-python入门-字典与集合及文件
  12. python中match的六种用法_python re.match()用法相关示例
  13. 全球问题—废旧电子废弃物的回收
  14. HashTab 2.08 简体中文版
  15. C#,佩尔数(Pell Number)的算法与源代码
  16. 冯诺依曼体系结构+操作系统
  17. 阿里最新春招面经,腾讯 / 美团 / 字节 1 万道 Java 中高级面试题
  18. 【软考】【知识产权与法律法规】
  19. 频谱、频谱密度、功率谱密度、能量谱密度
  20. 38译码器真值表讲解_74138译码器真值表及引脚图功能

热门文章

  1. PHP:PHP与XML
  2. [云炬创业基础笔记]识别创业机会的方法之二—趋势观察法
  3. 本地maven仓库配置(windows)
  4. 关于string.h头文件的函数——C语言
  5. case when 用法
  6. 本地GitLab服务器搭建
  7. java 友元函数_友元函数
  8. CDN判断及绕过技术
  9. sqlserver LEAD和LAG函数(学习记录)
  10. 四川师范大学计算机科学与技术研究生导师,2021年四川师范大学计算机科学与技术、软件工程、电子信息等计算机相关学科调剂信息...