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>
相关推荐
RestCloud4 小时前
揭秘 CDC 技术:让数据库同步快人一步
数据库·api
沐怡旸5 小时前
【底层机制】std::string 解决的痛点?是什么?怎么实现的?怎么正确用?
c++·面试
得物技术7 小时前
MySQL单表为何别超2000万行?揭秘B+树与16KB页的生死博弈|得物技术
数据库·后端·mysql
River4168 小时前
Javer 学 c++(十三):引用篇
c++·后端
感哥10 小时前
C++ std::set
c++
侃侃_天下11 小时前
最终的信号类
开发语言·c++·算法
可涵不会debug11 小时前
【IoTDB】时序数据库选型指南:工业大数据场景下的技术突围
数据库·时序数据库
ByteBlossom11 小时前
MySQL 面试场景题之如何处理 BLOB 和CLOB 数据类型?
数据库·mysql·面试
麦兜*11 小时前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
Slaughter信仰11 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库