Qt设置应用程序字体

目的

由于微软雅黑字体具有版权效应, 导致实际项目中需要load其他字体, 比如说应用程序默认字体为思源黑体-Mdeium黑度。

通用做法在qrc中添加字体资源,SourceHanSansCN-Medium.ttf, 然后在main函数中动态加载字体文件。 如果后期要更换但这个文件过大的话, 建议改为动态加载绝对路径文件。

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

int main(int argc, char *argv[])
{
    SingleApplication a(argc, argv);
   QString fontPath = QString("%1/font/SourceHanSansCN-Medium.ttf").arg(QCoreApplication::applicationDirPath());
     int fontId = QFontDatabase::addApplicationFont(fontdatas);
    qDebug()<< "fontId ="<< fontId<<QFontDatabase::applicationFontFamilies(fontId);
    QString sansCNFamily  = QFontDatabase::applicationFontFamilies(fontId).at(0);
    qDebug()<<"sansCNFamily  =" <<sansCNFamily ;
    font.setFamily(sansCNFamily);
    a.setFont(font);
    a.exec()
}

Note: 一定要确保对应SourceHanSansCN-Medium.ttf 文件是正确的, 不然字体加载会返回-1, 无效

相关推荐
杨了个杨89826 小时前
memcached部署
qt·websocket·memcached
无小道8 小时前
Qt-qrc机制简单介绍
开发语言·qt
CodeKwang9 小时前
Qt实战:简易Excel表格 | 附完整源码
qt·excel·qtabwidget·qt控件
C++ 老炮儿的技术栈11 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
打工哪有不疯的12 小时前
使用 MSYS2 为 Qt (MinGW 32/64位) 完美配置 OpenSSL
c++·qt
LYOBOYI12314 小时前
qtcpSocket详解
c++·qt
无小道16 小时前
Qt——网络编程
开发语言·qt
云中飞鸿16 小时前
VS编写QT程序,如何向linux中移植?
linux·开发语言·qt
草莓熊Lotso17 小时前
Qt 主窗口核心组件实战:菜单栏、工具栏、状态栏、浮动窗口全攻略
运维·开发语言·人工智能·python·qt·ui
云中飞鸿1 天前
QTCreator快捷键
qt