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>
相关推荐
泷羽Sec-静安8 分钟前
OSCP官方靶场-Solstice WP
服务器·网络·数据库
你的冰西瓜8 分钟前
C++ 中最短路算法的详细介绍
c++·算法·图论·最短路
IvanCodes18 分钟前
Oracle 视图
大数据·数据库·sql·oracle
<但凡.23 分钟前
数据结构与算法之美:广义表
数据结构·c++·算法
德育处主任Pro1 小时前
「py数据分析」04如何将 Python 爬取的数据保存为 CSV 文件
数据库·python·数据分析
许白掰1 小时前
Linux入门篇学习——Linux 编写第一个自己的命令
linux·运维·数据库·嵌入式硬件·学习
打不了嗝 ᥬ᭄1 小时前
文件系统----底层架构
linux·运维·数据库
大白的编程日记.2 小时前
【计算机基础理论知识】C++篇(二)
开发语言·c++·学习
C语言小火车2 小时前
野指针:C/C++内存管理的“幽灵陷阱”与系统化规避策略
c语言·c++·学习·指针
亲爱的非洲野猪2 小时前
Oracle与MySQL详细对比
数据库·mysql·oracle