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种字体效果:

相关推荐
共享家95275 小时前
Qt窗口教程(上)
开发语言·qt
俊俊谢5 小时前
OpenCV环境配置(QT 6.6.1 MSVC2019 64bit + OpenCV – 4.12.0)
qt·opencv·msvc
小小鱼儿飞6 小时前
QT Quick QML项目音乐播放器16----无边框窗口拖动、小窗播放、隐藏系统托盘
开发语言·qt
Jay Chou why did6 小时前
14. Qt 自定义控件
qt
-指短琴长-6 小时前
Qt的下载和安装【Windows】
开发语言·windows·qt
硅农深芯10 小时前
如何使用ptqt5实现进度条的动态显示
开发语言·python·qt
Lhan.zzZ10 小时前
Qt数据可视化实战:饼图、线图与表格的完整指南
开发语言·qt·信息可视化
feiyangqingyun11 小时前
Qt/C++编写GB28181服务/前后端分离/定义一套交互协议/视频点播/录像回放和控制/警情通知
c++·qt·交互
虾米Life12 小时前
基于微服务脚手架的视频点播系统 (仿B站) [客户端] -1
c++·qt·微服务·架构
yugi98783814 小时前
基于Qt框架开发多功能视频播放器
开发语言·qt