首页 > 解决方案 > 是否可以将自定义字体应用于 QML 中的所有元素?

问题描述

就像问题说的那样,我想知道是否有一种方法可以将自定义字体应用于 QML 中的所有元素,就像我们可以在 HTML 中轻松地在标签正文上设置字体一样。我已经可以在 QML 中使用以下字体:

FontLoader { id: robotoRegular; source: "fonts/Roboto-Regular.ttf" }

但是现在如果我做类似的事情

ApplicationWindow {
font.family:robotoRegular.name

它似乎不起作用,并且可能不应该。或者有什么办法吗?

我使用 Qt 5.11.2,QtQuick 2.2

标签: qtqml

解决方案


试试这个代码:

#include <QFontDatabase>

void InstallDefaultFont()
{
    qint32 fontId = QFontDatabase::addApplicationFont(":/font.otf");
    QStringList fontList = QFontDatabase::applicationFontFamilies(fontId);

    QString family = fontList.first();
    QGuiApplication::setFont(QFont(family));
}

这也将为 QML 和小部件设置默认字体。


推荐阅读