天天看點

Qt基于Qml使用FontAwesome字型

 示範效果:

Qt基于Qml使用FontAwesome字型

 1.添加字型檔案

Qt基于Qml使用FontAwesome字型

 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"
        }      
#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();
}      
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"
        }
    }
}