Qt添加第三方字体

最近开发项目时,据说不能用系统自带的微软雅黑字体,于是找一个开源的字体,思源黑体,这个是google和Adobe公司合力开发的可以免费使用。本篇记录一下Qt使用第三方字体的方式。字体从下载之家下载http://www.downza.cn/soft/266042.html。下载解压后有8种字体

代码实现

cpp 复制代码
#include "mainwindow.h"
#include <QFont>
#include <QFontDatabase>
#include <QApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QString path = QCoreApplication::applicationDirPath();
    int fontIndex = 0;
    switch (fontIndex) {
    case 0:
        path = path + QString("/font/SourceHanSans-Bold.otf");
        break;
    case 1:
        path = path + QString("/font/SourceHanSans-CNBold.ttf");
        break;
    case 2:
        path = path + QString("/font/SourceHanSans-ExtraLight.otf");
        break;
    case 3:
        path = path + QString("/font/SourceHanSans-Heavy.otf");
        break;
    case 4:
        path = path + QString("/font/SourceHanSans-Light.otf");
        break;
    case 5:
        path = path + QString("/font/SourceHanSans-Medium.otf");
        break;
    case 6:
        path = path + QString("/font/SourceHanSans-Normal.ttf");
        break;
    case 7:
        path = path + QString("/font/SourceHanSans-Regular.ttf");
        break;
    default:
        path = path + QString("/font/SourceHanSans-CNBold.ttf");
        break;
    }

    int fontId = QFontDatabase::addApplicationFont(path);
    QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);

    if (!fontFamilies.empty())
    {
        QString fontFamily = fontFamilies.at(0);
        QFont defaultFont = a.font();
        defaultFont.setFamily(fontFamily);
        defaultFont.setPixelSize(15);
        a.setFont(defaultFont);
    }

    MainWindow w;
    w.show();
    return a.exec();
}

运行效果:

第2种字体效果:

第3种字体效果:

第4种字体效果:

第5种字体效果:

第6种字体效果:

第7种字体效果:

第8种字体效果:

相关推荐
必须得开心呀3 小时前
QT解决中文乱码问题
开发语言·qt
熊猫_豆豆3 小时前
QT6 Android C++ 自制美观闹钟
android·c++·qt·闹钟
hssfscv10 小时前
QT的学习笔记4——QMainWindow、资源文件以及主要控件的介绍
笔记·qt·学习
luoyayun36112 小时前
Qt + FFmpeg 音频工具:重采样实现
qt·ffmpeg·重采样
小短腿的代码世界1 天前
Qt Bluetooth源码深度解析:从HCI协议到跨平台API的完整架构
开发语言·qt·架构
小短腿的代码世界1 天前
Qt WebEngine多进程架构与IPC通信:从Chromium多进程到Qt信号槽融合
qt·架构·系统架构
尘中远1 天前
【Qwt 7.0 系列】快速入门与核心新特性概览 —— 更现代的 Qt 数据可视化库
qt·数据可视化·绘图·qwt·科学绘图
初阳7851 天前
【Qt】系统相关(3)——多线程
qt
初阳7852 天前
【Qt】系统相关(2)——文件
开发语言·qt
尘中远2 天前
【Qwt 7.0 系列】坐标轴与刻度系统 —— 刻度引擎、网格、图例与刻度朝内
qt·数据可视化·qcustomplot·qwt·工业软件·科学绘图