我想知道是否有一种方法可以将自定义字体应用于 QML 中的所有元素,就像我们可以在 HTML 中轻松做到的那样,在标签主体上设置字体。 我已经可以在 QML 中使用以下字体:
FontLoader { id: robotoRegular; source: "fonts/Roboto-Regular.ttf" }
但是现在如果我做类似的事情:
ApplicationWindow {
font.family: robotoRegular.name
它似乎不起作用,而且可能不应该起作用。或者有什么办法吗?
我正在使用 Qt 5.11.2、QtQuick 2.2。
试试这个代码:
#include <QFontDatabase>
void InstallDefaultFont()
{
qint32 fontId = QFontDatabase::addApplicationFont(":/font.otf");
QStringList fontList = QFontDatabase::applicationFontFamilies(fontId);
QString family = fontList.first();
QGuiApplication::setFont(QFont(family));
}
这也将为 QML 和小部件设置默认字体。
无需编写 C++,您只需使用 QML 即可:
FontLoader {
id: localFontRegular
source: "qrc:/font/SourceHanSansCN-Regular.otf"
}
Text {
id: name
text: qsTr("text")
font.family: localFontRegular.font.family
font.weight: localFontRegular.font.weight
}