演示效果:

Qt基于Qml使用FontAwesome字体_qt

 1.添加字体文件

Qt基于Qml使用FontAwesome字体_开发语言_02

 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"
}
}
}