演示效果:
1.添加字体文件
2.在C++代码中指定程序使用字体
// 添加字体文件
int fontId = QFontDatabase::addApplicationFont(":/Font/fontawesome-webfont.ttf");
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
3.在Qml中使用字体
Text{
color: Qt.rgba(0, 160, 230, 1.0)
font.family: "FontAwesome"
font.pixelSize: 100
text: "\uf00e"
}
Text{
color: "green"
font.family: "FontAwesome"
font.pixelSize: 100
text: "\uf004"
}
完整代码:
main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QFontDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
// 添加字体文件
int fontId = QFontDatabase::addApplicationFont(":/Font/fontawesome-webfont.ttf");
QStringList fontFamilies = QFontDatabase::applicationFontFamilies(fontId);
qDebug() << "fontFamilies.size() " << fontFamilies.size();
QQmlApplicationEngine engine;
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
return app.exec();
}
main.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
ApplicationWindow {
visible: true
width: 400
height: 300
title: qsTr("Qt基于Qml使用FontAwesome字体")
Row{
anchors.centerIn: parent
spacing: 20
Text{
color: Qt.rgba(0, 160, 230, 1.0)
font.family: "FontAwesome"
font.pixelSize: 100
text: "\uf00e"
}
Text{
color: "green"
font.family: "FontAwesome"
font.pixelSize: 100
text: "\uf004"
}
}
}