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

简介: 欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资

头图

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

[toc]

关键字: 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

相关文章
|
7月前
|
Linux 测试技术
Linux基础项目开发1:量产工具——文字系统(四)
Linux基础项目开发1:量产工具——文字系统(四)
71 0
Linux基础项目开发1:量产工具——文字系统(四)
|
算法 数据可视化 前端开发
第三代软件开发-QCustomPlot核心迁移
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
前端开发 算法 数据可视化
第三代软件开发-C++&QML交互
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
自然语言处理 JavaScript 前端开发
Duktape:一个新的小巧的超精简可嵌入式JavaScript引擎
Duktape是一个可嵌入的Javascript引擎,主要关注便携性和精简及紧凑性。 Duktape很容易集成到C/C++项目: 添加duktape.c和duktape.h到您的build中,并使用Duktape API从C代码中,调用ECMAScript代码的功能,反之亦然。
1457 0
|
4月前
|
C# 开发者 测试技术
震惊!Xamarin 竟能如此构建跨平台应用程序,代码共享、界面设计与性能优化全攻略大揭秘!
【8月更文挑战第31天】在移动应用开发领域,跨平台工具日益受到青睐。Xamarin 是一款强大的工具,支持使用 C# 开发适用于 iOS、Android 和 Windows 的应用。通过安装 Visual Studio 或 Visual Studio for Mac,并创建 Xamarin 项目,开发者可以利用丰富的功能和工具进行开发。Xamarin 的主要优势在于代码共享,能够显著提高开发效率。
91 0
|
4月前
|
C# Windows 开发者
超越选择焦虑:深入解析WinForms、WPF与UWP——谁才是打造顶级.NET桌面应用的终极利器?从开发效率到视觉享受,全面解读三大框架优劣,助你精准匹配项目需求,构建完美桌面应用生态系统
【8月更文挑战第31天】.NET框架为开发者提供了多种桌面应用开发选项,包括WinForms、WPF和UWP。WinForms简单易用,适合快速开发基本应用;WPF提供强大的UI设计工具和丰富的视觉体验,支持XAML,易于实现复杂布局;UWP专为Windows 10设计,支持多设备,充分利用现代硬件特性。本文通过示例代码详细介绍这三种框架的特点,帮助读者根据项目需求做出明智选择。以下是各框架的简单示例代码,便于理解其基本用法。
231 0
|
7月前
|
Linux C语言
Linux基础项目开发1:量产工具——程序框架(一)
Linux基础项目开发1:量产工具——程序框架(一)
111 0
Linux基础项目开发1:量产工具——程序框架(一)
|
算法 数据可视化 前端开发
第三代软件开发-PDF阅读器
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
算法 数据可视化 前端开发
第三代软件开发-Qt属性系统
欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。 在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。 在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资
|
安全 Linux Windows
五款非常轻便的实用小工具
大伙们,开工大吉!
171 0
五款非常轻便的实用小工具