qt系统字体方案

目录

查看系统支持字体

cpp 复制代码
#include <QFontDatabase>
#include <QDebug>
// 获取所有字体系列
QFontDatabase fontDatabase;
qDebug() << fontDatabase.families();

设置默认字体

cpp 复制代码
    // 设置默认字体
    QFont defaultFont = QGuiApplication::font();
    qDebug() << "系统默认字体:" << defaultFont.family();
    defaultFont.setFamily("宋体");
    QGuiApplication::setFont(defaultFont);

Qt5.13新增自定义回退链

当字符在默认字体找不到,qt会如何处理呢?

5.13之前的版本,他会回到系统回退链查找

5.13版本给QFont新增setFamilies自定义回退链,如果自定义回退链找不到才会回到系统回退链

cpp 复制代码
// 设置默认字体
QFont defaultFont = QGuiApplication::font();
qDebug() << "系统默认字体:" << defaultFont.family();
QStringList families;
families << "Microsoft YaHei" << "PingFang SC" << "Hiragino Sans GB" << "WenQuanYi Micro Hei" << "sans-serif";
defaultFont.setFamily("宋体");
defaultFont.setFamilies(families);
QGuiApplication::setFont(defaultFont);

字体扩展方式1(系统安装)

如果是ubuntu你就将字体安装到, 与此同时启动qt程序

是可以在fontDatabase.families()中找到的

cpp 复制代码
/usr/share/fonts/​ - 这是最主要的系统级字体目录。安装在这里的字体对所有用户可用。
通常,您下载的字体包(如 .ttf, .otf文件)可以放在其子目录中,例如:
/usr/share/fonts/truetype/(用于 TrueType 字体 .ttf)
/usr/share/fonts/opentype/(用于 OpenType 字体 .otf)
您也可以在其中创建新的文件夹来分类管理字体。

字体扩展方式2 (外部资源)

将字体包安装到程序所在指定目录,通过本地路径加载

在families()看到的字体直接使用即可

不建议使用qrc进行加载因为会导致打包文件很大,打包速度很慢

cpp 复制代码
// 获取所有字体系列
QFontDatabase fontDatabase;
fontDatabase.addApplicationFont("MiSans-Thin.ttf");
qDebug() << fontDatabase.families();

// 设置默认字体
QFont defaultFont = QGuiApplication::font();
qDebug() << "系统默认字体:" << defaultFont.family();
QStringList families;
families << "Microsoft YaHei" << "PingFang SC" << "Hiragino Sans GB" << "WenQuanYi Micro Hei" << "sans-serif";
defaultFont.setFamily("MiSans Thin");
//defaultFont.setFamilies(families);
QGuiApplication::setFont(defaultFont);
相关推荐
Chester_19998 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
会周易的程序员10 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导10 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan10 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
小灰灰搞电子10 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
QT界面美化性能优化10 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
m0_6952514910 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
学习星球12 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
小灰灰搞电子13 小时前
C++ 引用折叠详解
c++
布莱克60514 小时前
数组详解:定义、作用、应用场景及与链表的区别(C/C++ 代码讲解)
c语言·开发语言·c++·数组