Qt加载字体

本文介绍怎么设置系统内置字体和从外部加载字体。

查询系统支持的字体

1
2
3
4
QFontDatabase database;
foreach (const QString &family, database.families()) {
qDebug()<<family;
}

设置全局字体

  • font内容为family查询到的字体名称
    1
    2
    QFont font("family");
    QApplication::setFont(font);

外部加载字体

  • 字体支持ttc或ttf格式加载;
  • 使用addApplicationFont可以为系统路径,也可以资源文件。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int fontId = QFontDatabase::addApplicationFont("font.ttc");
    QStringList fontIDs = QFontDatabase::applicationFontFamilies(fontId);
    if (! fontIDs.isEmpty()) {
    QFont font(fontIDs.first());
    QApplication::setFont(font);
    }
    else {
    qDebug()<<"Failed to load font.";
    }