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>
相关推荐
奋斗的小花生1 小时前
c++ 多态性
开发语言·c++
闲晨1 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
UestcXiye2 小时前
《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列
c++·计算机网络·ip·tcp
Ai 编码助手4 小时前
MySQL中distinct与group by之间的性能进行比较
数据库·mysql
Mr.Q4 小时前
Qt多边形填充/不填充绘制
qt
霁月风4 小时前
设计模式——适配器模式
c++·适配器模式
陈燚_重生之又为程序员4 小时前
基于梧桐数据库的实时数据分析解决方案
数据库·数据挖掘·数据分析
caridle4 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
白云如幻4 小时前
MySQL排序查询
数据库·mysql
萧鼎4 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步