qt 加载字体 c++

目录

[qt 加载字体 c++](#qt 加载字体 c++)

label设置大小和字体:

资源配置路径失败

解决方法:exe相对目录:

pro配置:

resource.qrc


qt 加载字体 c++

cpp 复制代码
#include <QApplication>
#include <QLabel>
#include <QFontDatabase>
#include <QVBoxLayout>
#include <QWidget>

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

    // 加载字体文件
    int fontId = QFontDatabase::addApplicationFont(":/path/to/hyyj.ttf");
    if (fontId == -1) {
        qWarning() << "Failed to load font!";
        return -1;
    }

    // 获取字体系列名称
    QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
    if (fontFamilies.isEmpty()) {
        qWarning() << "Failed to retrieve font families!";
        return -1;
    }

    QString fontFamily = fontFamilies.at(0);

    // 创建并设置 QLabel
    QLabel label("Hello, Qt with custom font!");
    QFont customFont(fontFamily);
    label.setFont(customFont);

    // 设置布局
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(&label);

    QWidget window;
    window.setLayout(layout);
    window.show();

    return app.exec();
}

label设置大小和字体:

cpp 复制代码
   auto labelDetails = new QLabel(QString("1235"));

        int fontId = QFontDatabase::addApplicationFont("B:/project/mengzong/jianluji/0525/demo/hyyj.ttf");
        if (fontId == -1) {
            qWarning() << "Failed to load font!";
            return ;
        }

        // 获取字体系列名称
        QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
        if (fontFamilies.isEmpty()) {
            qWarning() << "Failed to retrieve font families!";
            return ;
        }

        QString fontFamily = fontFamilies.at(0);

        QFont customFont(fontFamily);

         customFont.setPointSize(48);  // 设置字体大小
        labelDetails->setFont(customFont);

        labelDetails->setAutoFillBackground(true);
            labelDetails->setStyleSheet("QLabel { color : rgb(39, 255, 167); }");
        labelDetails->setFixedSize(300, 60);
        vbox->addWidget(labelDetails);

资源配置路径失败

cpp 复制代码
 int fontId = QFontDatabase::addApplicationFont(":/res/raw/hyyj.ttf");

解决方法:exe相对目录:

cpp 复制代码
 int fontId = QFontDatabase::addApplicationFont("./hyyj.ttf");

pro配置:

bash 复制代码
QT += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = FontExample
TEMPLATE = app

# 添加字体文件到资源
RESOURCES += resources.qrc

resource.qrc

bash 复制代码
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>hyyj.ttf</file>
</qresource>
</RCC>
相关推荐
专注API从业者1 分钟前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
大迪deblog6 分钟前
系统架构师-数据库-数据库设计
数据库·oracle·系统架构
leo__52018 分钟前
IEC 104 协议 C 语言实现
c语言·数据库
摇滚侠18 分钟前
DBeaver 导入数据库 导入 SQL 文件 MySQL 备份恢复
java·数据库·mysql
若兰幽竹42 分钟前
【从零开始编写数据库系统:架构设计与实现】第5章:查询执行引擎与火山模型
数据库·架构·数据库内核·toydb
学涯乐码堂主43 分钟前
有趣的“打擂台算法”
c++·算法·青少年编程·gesp
天空属于哈夫克31 小时前
企业微信API常见的错误和解决方案
java·数据库·企业微信
东风破1371 小时前
DM8达梦数据库备份、恢复原理介绍
数据库·oracle·dm达梦数据库
云栖梦泽2 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
鹏子训2 小时前
AI记忆新思路:用SQLite替代向量数据库,去EMBEDDINGS化,谷歌开源Google Always On Memory Agent
数据库·人工智能·sqlite·embedding