029-第三代软件开发-加载本地字体库

2023-10-22 13:53

本文主要是介绍029-第三代软件开发-加载本地字体库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

头图

第三代软件开发-加载本地字体库

文章目录

  • 第三代软件开发-加载本地字体库
    • 项目介绍
    • 加载本地字体库

关键字: QtQmlQFontQFontDatabasettf

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

加载本地字体库

在Qt程序中加载字体是一种常见的做法,它允许应用程序使用自定义字体而无需依赖于系统已安装的字体。这意味着,即使系统中没有安装相应的字体,Qt程序仍然能够使用这些字体。

通过在Qt程序中加载字体,可以提供更好的跨平台兼容性,并确保所使用的字体在不同的运行环境中保持一致。

当使用Qt程序加载字体时,程序会将字体文件嵌入到应用程序的资源中,然后通过调用QFontDatabase类的相关方法来加载和使用这些字体。这样,即使用户在系统中没有安装相应的字体,Qt程序也能够使用它们。

需要注意的是,由于字体是通过加载字体文件而不是安装字体到系统中来实现的,因此在其他应用程序或系统级别的场景中,并不能直接使用这些自定义字体。如果希望在整个系统中让其他应用程序也能使用这些字体,那么需要将字体文件安装到系统中。

总结来说,通过在Qt程序中加载字体,可以使应用程序在没有安装对应字体的系统上正常工作,并且保证字体的一致性。但如果希望其他应用程序也能够使用这些字体,则还需要在系统中安装这些字体。

这里就又要回到咱们的C++代码中了,总体就是两部分,

第一步:就是把字体加载到Qr 的字库中

第二步:新建一个QFont的变量,设置需要的字体,完了全局设置字体样式,代码如下:

    /*** @brief 设置字体*/int fontId = QFontDatabase::addApplicationFont(QStringLiteral(":/Font/T_Font/simhei.ttf"));int fontId_1 = QFontDatabase::addApplicationFont(QStringLiteral(":/Font/T_Font/MiSans-Bold.ttf"));int fontId_2 = QFontDatabase::addApplicationFont(QStringLiteral(":/Font/T_Font/MiSans-Regular.ttf"));QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);fontFamilies.append(QFontDatabase::applicationFontFamilies(fontId_1));fontFamilies.append(QFontDatabase::applicationFontFamilies(fontId_2));if (fontFamilies.size() > 0){QFont font;font.setPointSize(14);QString temp = fontFamilies[2] + ", " + fontFamilies[1] + ", " + fontFamilies[0];font.setFamily(temp); //设置全局字体app.setFont(font);}

这里有个路径需要大家看一下,我是直接从QRC中读取的,我理解的这样是程序发布的时候,是吧这些字体都带着的,不用再从本地读取,缺点就是程序可能会大一点。这个可以根据需求自行决定,而且为了保险起见,我在系统中也安装了对应的字体,如果你看过前面【第三代软件开发环境搭建】的话。


博客签名2021

这篇关于029-第三代软件开发-加载本地字体库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261874

相关文章

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

Java实现本地缓存的四种方法实现与对比

《Java实现本地缓存的四种方法实现与对比》本地缓存的优点就是速度非常快,没有网络消耗,本地缓存比如caffine,guavacache这些都是比较常用的,下面我们来看看这四种缓存的具体实现吧... 目录1、HashMap2、Guava Cache3、Caffeine4、Encache本地缓存比如 caff

SpringBoot加载profile全面解析

《SpringBoot加载profile全面解析》SpringBoot的Profile机制通过多配置文件和注解实现环境隔离,支持开发、测试、生产等不同环境的灵活配置切换,无需修改代码,关键点包括配置文... 目录题目详细答案什么是 Profile配置 Profile使用application-{profil

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直