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>
相关推荐
Tanecious.7 分钟前
蓝桥杯备赛:Day3-P1102 A-B 数对
c++·蓝桥杯
zzh0818 分钟前
MySQL高可用集群笔记
数据库·笔记·mysql
Tanecious.32 分钟前
蓝桥杯备赛:Day3-P1918 保龄球
c++·蓝桥杯
Shely201736 分钟前
MySQL数据表管理
数据库·mysql
良木生香39 分钟前
【C++初阶】:C++类和对象(下):构造函数promax & 类型转换 & static & 友元 & 内部类 & 匿名对象 & 超级优化
c语言·开发语言·c++
爬山算法44 分钟前
MongoDB(80)如何在MongoDB中使用多文档事务?
数据库·python·mongodb
APguantou1 小时前
NCRE-三级数据库技术-第2章-需求分析
数据库·需求分析
寂夜了无痕1 小时前
MySQL 主从延迟全链路根因诊断与破局法则
数据库·mysql·mysql主从延迟
爱丽_1 小时前
分页为什么越翻越慢:offset 陷阱、seek 分页与索引排序优化
数据库·mysql
APguantou2 小时前
NCRE-三级数据库技术-第12章-备份与数据库恢复
数据库·sqlserver