Sur cette page

QFontDatabase Class

La classe QFontDatabase fournit des informations sur les polices disponibles dans le système de fenêtres sous-jacent. Plus d'informations...

En-tête : #include <QFontDatabase>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui

Note : Toutes les fonctions de cette classe sont sûres pour les threads.

Types publics

enum SystemFont { GeneralFont, FixedFont, TitleFont, SmallestReadableFont }
enum WritingSystem { Any, Latin, Greek, Cyrillic, Armenian, …, Nko }

Membres publics statiques

(since 6.9) void addApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) void addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
(since 6.9) QStringList applicationEmojiFontFamilies()
(since 6.8) QStringList applicationFallbackFontFamilies(QChar::Script script)
QStringList applicationFontFamilies(int id)
bool bold(const QString &family, const QString &style)
QStringList families(QFontDatabase::WritingSystem writingSystem = Any)
QFont font(const QString &family, const QString &style, int pointSize)
bool isBitmapScalable(const QString &family, const QString &style = QString())
bool isFixedPitch(const QString &family, const QString &style = QString())
bool isPrivateFamily(const QString &family)
bool isScalable(const QString &family, const QString &style = QString())
bool isSmoothlyScalable(const QString &family, const QString &style = QString())
bool italic(const QString &family, const QString &style)
QList<int> pointSizes(const QString &family, const QString &styleName = QString())
bool removeAllApplicationFonts()
(since 6.9) bool removeApplicationEmojiFontFamily(const QString &familyName)
(since 6.8) bool removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
bool removeApplicationFont(int id)
(since 6.9) void setApplicationEmojiFontFamilies(const QStringList &familyNames)
(since 6.8) void setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)
QList<int> smoothSizes(const QString &family, const QString &styleName)
QList<int> standardSizes()
QString styleString(const QFont &font)
QString styleString(const QFontInfo &fontInfo)
QStringList styles(const QString &family)
QFont systemFont(QFontDatabase::SystemFont type)
int weight(const QString &family, const QString &style)
QString writingSystemName(QFontDatabase::WritingSystem writingSystem)
QString writingSystemSample(QFontDatabase::WritingSystem writingSystem)
QList<QFontDatabase::WritingSystem> writingSystems()
QList<QFontDatabase::WritingSystem> writingSystems(const QString &family)

Description détaillée

Les utilisations les plus courantes de cette classe consistent à interroger la base de données pour obtenir la liste des polices de caractères families() et les polices pointSizes() et styles() disponibles pour chaque famille. Une alternative à pointSizes() est smoothSizes() qui renvoie les tailles auxquelles une famille et un style donnés sont attrayants.

Si la famille de polices est disponible auprès de deux fonderies ou plus, le nom de la fonderie est inclus dans le nom de la famille ; par exemple : "Helvetica [Adobe]" et "Helvetica [Cronyx]". Lorsque vous spécifiez une famille, vous pouvez utiliser soit l'ancien format "famille-fonderie" avec trait d'union, soit le format "famille [fonderie]" entre parenthèses ; par exemple : "Cronyx-Helvetica" ou "Helvetica [Cronyx]". Si la famille a une fonderie, elle est toujours renvoyée en utilisant le format entre crochets, comme c'est le cas pour la valeur renvoyée par families().

La fonction font() renvoie une valeur de QFont à partir d'une famille, d'un style et d'une taille de point.

Une combinaison de famille et de style peut être vérifiée pour voir si elle est italic() ou bold(), et pour récupérer son weight(). De même, nous pouvons appeler isBitmapScalable(), isSmoothlyScalable(), isScalable() et isFixedPitch().

Utilisez styleString() pour obtenir une version texte d'un style.

La classe QFontDatabase fournit quelques fonctions d'aide, par exemple standardSizes(). Vous pouvez obtenir la description d'un système d'écriture en utilisant writingSystemName(), et un échantillon de caractères d'un système d'écriture en utilisant writingSystemSample().

Exemple :

QTreeWidget fontTree;
fontTree.setColumnCount(2);
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes");

const QStringList fontFamilies = QFontDatabase::families();
for (const QString &family : fontFamilies) {
    QTreeWidgetItem *familyItem = new QTreeWidgetItem(&fontTree);
    familyItem->setText(0, family);

    const QStringList fontStyles = QFontDatabase::styles(family);
    for (const QString &style : fontStyles) {
        QTreeWidgetItem *styleItem = new QTreeWidgetItem(familyItem);
        styleItem->setText(0, style);

        QString sizes;
        const QList<int> smoothSizes = QFontDatabase::smoothSizes(family, style);
        for (const auto &points : smoothSizes)
            sizes += QString::number(points) + ' ';

        styleItem->setText(1, sizes.trimmed());
    }
}

Cet exemple permet d'obtenir la liste des familles de polices, la liste des styles pour chaque famille et les tailles de points disponibles pour chaque combinaison de famille et de style, en affichant ces informations sous la forme d'une arborescence.

Voir aussi QFont, QFontInfo, et QFontMetrics.

Documentation sur les types de membres

enum QFontDatabase::SystemFont

ConstanteValeurDescription de la police
QFontDatabase::GeneralFont0Police par défaut du système.
QFontDatabase::FixedFont1Police fixe recommandée par le système.
QFontDatabase::TitleFont2La police standard du système pour les titres.
QFontDatabase::SmallestReadableFont3La plus petite police lisible du système.

enum QFontDatabase::WritingSystem

ConstanteValeurDescription
QFontDatabase::Any0
QFontDatabase::Latin1
QFontDatabase::Greek2
QFontDatabase::Cyrillic3
QFontDatabase::Armenian4
QFontDatabase::Hebrew5
QFontDatabase::Arabic6
QFontDatabase::Syriac7
QFontDatabase::Thaana8
QFontDatabase::Devanagari9
QFontDatabase::Bengali10
QFontDatabase::Gurmukhi11
QFontDatabase::Gujarati12
QFontDatabase::Oriya13
QFontDatabase::Tamil14
QFontDatabase::Telugu15
QFontDatabase::Kannada16
QFontDatabase::Malayalam17
QFontDatabase::Sinhala18
QFontDatabase::Thai19
QFontDatabase::Lao20
QFontDatabase::Tibetan21
QFontDatabase::Myanmar22
QFontDatabase::Georgian23
QFontDatabase::Khmer24
QFontDatabase::SimplifiedChinese25
QFontDatabase::TraditionalChinese26
QFontDatabase::Japanese27
QFontDatabase::Korean28
QFontDatabase::Vietnamese29
QFontDatabase::Symbol30
QFontDatabase::OtherSymbol(identique au symbole)
QFontDatabase::Ogham31
QFontDatabase::Runic32
QFontDatabase::Nko33

Documentation des fonctions membres

[static, since 6.9] void QFontDatabase::addApplicationEmojiFontFamily(const QString &familyName)

Ajoute familyName comme police d'emoji définie par l'application.

Pour afficher des emojis multicolores ou des séquences d'emojis, Qt préfère par défaut la police emoji par défaut du système. Parfois, l'application peut vouloir surpasser la police par défaut, soit pour obtenir un style visuel spécifique, soit pour afficher des emojis qui ne sont pas pris en charge par le système.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi removeApplicationEmojiFontFamily, setApplicationEmojiFontFamilies(), applicationEmojiFontFamilies(), et addApplicationFallbackFontFamily().

[static, since 6.8] void QFontDatabase::addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

Ajoute familyName comme police de secours définie par l'application pour script.

Lorsque Qt rencontre des caractères qui ne sont pas pris en charge par la police sélectionnée, il recherche une correspondance dans une liste de polices de repli. Cela permet de combiner plusieurs scripts dans une seule chaîne de caractères, même si la police principale ne les prend pas en charge.

La liste des polices de remplacement est sélectionnée en fonction du script de la chaîne ainsi que d'autres conditions, telles que la langue du système.

Bien que la liste des polices de remplacement du système soit généralement suffisante, il est parfois utile d'ignorer le comportement par défaut. L'un de ces cas est l'utilisation de polices d'application comme solution de repli pour assurer la cohérence entre les plates-formes.

Dans un autre cas, l'application peut être écrite dans un script avec des différences régionales et l'on souhaite l'exécuter sans traduction dans plusieurs régions. Dans ce cas, il peut être utile de remplacer la police locale par une police correspondant à la langue de l'application.

En passant familyName à addApplicationFallbackFontFamily(), celle-ci deviendra la famille préférée lors de la correspondance avec les caractères manquants de script. script doit être un script valide (QChar::Script_Latin ou supérieur). Lors de l'ajout de plusieurs polices pour le même script, elles seront priorisées dans l'ordre inverse, de sorte que la dernière famille ajoutée sera vérifiée en premier et ainsi de suite.

Remarque : l'algorithme de correspondance des polices de Qt considère que QChar::Script_Common (script indéterminé) et QChar::Script_Latin sont identiques. L'ajout d'un correctif pour l'une ou l'autre de ces familles s'appliquera également à l'autre.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi setApplicationFallbackFontFamilies(), removeApplicationFallbackFontFamily(), et applicationFallbackFontFamilies().

[static] int QFontDatabase::addApplicationFont(const QString &fileName)

Charge la police à partir du fichier spécifié par fileName et la met à la disposition de l'application. Un ID est renvoyé, qui peut être utilisé pour supprimer à nouveau la police avec removeApplicationFont() ou pour récupérer la liste des noms de famille contenus dans la police.

La fonction renvoie -1 si la police n'a pas pu être chargée.

Actuellement, seules les polices TrueType, les collections de polices TrueType et les polices OpenType sont prises en charge.

Voir aussi addApplicationFontFromData(), applicationFontFamilies() et removeApplicationFont().

[static] int QFontDatabase::addApplicationFontFromData(const QByteArray &fontData)

Charge la police à partir des données binaires spécifiées par fontData et la met à la disposition de l'application. Un ID est renvoyé, qui peut être utilisé pour supprimer à nouveau la police avec removeApplicationFont() ou pour récupérer la liste des noms de famille contenus dans la police.

La fonction renvoie -1 si la police n'a pas pu être chargée.

Actuellement, seules les polices TrueType, les collections de polices TrueType et les polices OpenType sont prises en charge.

Voir aussi addApplicationFont(), applicationFontFamilies() et removeApplicationFont().

[static, since 6.9] QStringList QFontDatabase::applicationEmojiFontFamilies()

Renvoie la liste des familles de polices d'emoji définies par l'application.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi addApplicationEmojiFontFamily(), removeApplicationEmojiFontFamily(), setApplicationEmojiFontFamilies(), et applicationFallbackFontFamilies().

[static, since 6.8] QStringList QFontDatabase::applicationFallbackFontFamilies(QChar::Script script)

Renvoie la liste des familles de polices de remplacement définies par l'application et précédemment ajoutées pour script par la fonction addApplicationFallbackFontFamily().

Cette fonction a été introduite dans Qt 6.8.

Voir aussi setApplicationFallbackFontFamilies(), addApplicationFallbackFontFamily(), et removeApplicationFallbackFontFamily().

[static] QStringList QFontDatabase::applicationFontFamilies(int id)

Renvoie une liste de familles de polices pour la police d'application donnée, identifiée par id.

Voir aussi addApplicationFont() et addApplicationFontFromData().

[static] bool QFontDatabase::bold(const QString &family, const QString &style)

Renvoie true si la police dont la famille est family et le style style est gras ; sinon, renvoie false.

Voir aussi italic() et weight().

[static] QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any)

Renvoie une liste triée des familles de polices disponibles qui prennent en charge le site writingSystem.

Si une famille existe dans plusieurs fonderies, le nom retourné pour cette police est de la forme "famille [fonderie]". Exemples : "Times [Adobe]", "Times [Cronyx]", "Palatino".

Voir également writingSystems().

[static] QFont QFontDatabase::font(const QString &family, const QString &style, int pointSize)

Renvoie un objet QFont dont la famille est family, le style style et la taille de point pointSize. Si aucune police correspondante n'a pu être créée, un objet QFont utilisant la police par défaut de l'application est renvoyé.

[static] bool QFontDatabase::isBitmapScalable(const QString &family, const QString &style = QString())

Renvoie true si la police dont la famille est family et le style style est une police bitmap extensible ; sinon, renvoie false. La mise à l'échelle d'une police bitmap produit généralement un résultat peu attrayant et difficilement lisible, car les pixels de la police sont mis à l'échelle. Si vous devez mettre à l'échelle une police bitmap, il est préférable de la mettre à l'échelle d'une des tailles fixes renvoyées par smoothSizes().

Voir également isScalable() et isSmoothlyScalable().

[static] bool QFontDatabase::isFixedPitch(const QString &family, const QString &style = QString())

Renvoie true si la police dont la famille est family et le style style est à hauteur fixe ; sinon, renvoie false.

[static] bool QFontDatabase::isPrivateFamily(const QString &family)

Renvoie true si et seulement si la famille de polices family est privée.

Cela se produit, par exemple, sur macOS et iOS, où les polices de l'interface utilisateur du système ne sont pas accessibles à l'utilisateur. Pour être complet, QFontDatabase::families() renvoie toutes les familles de polices, y compris celles qui sont privées. Vous devriez utiliser cette fonction si vous développez un contrôle de sélection des polices afin de garder les polices privées cachées.

Voir également families().

[static] bool QFontDatabase::isScalable(const QString &family, const QString &style = QString())

Renvoie true si la police dont la famille est family et le style style est extensible ; sinon, renvoie false.

Voir aussi isBitmapScalable() et isSmoothlyScalable().

[static] bool QFontDatabase::isSmoothlyScalable(const QString &family, const QString &style = QString())

Renvoie true si la police dont la famille est family et le style style est facilement extensible ; sinon, renvoie false. Si cette fonction renvoie true, il n'y a aucun risque à mettre à l'échelle cette police à n'importe quelle taille, et le résultat sera toujours attrayant.

Voir aussi isScalable() et isBitmapScalable().

[static] bool QFontDatabase::italic(const QString &family, const QString &style)

Renvoie true si la police dont la famille est family et le style style est italique ; sinon, renvoie false.

Voir aussi weight() et bold().

[static] QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())

Renvoie une liste des tailles de points disponibles pour la police dont la famille est family et le style styleName. La liste peut être vide.

Voir aussi smoothSizes() et standardSizes().

[static] bool QFontDatabase::removeAllApplicationFonts()

Supprime toutes les polices locales à l'application précédemment ajoutées à l'aide de addApplicationFont() et addApplicationFontFromData().

Renvoie true si le déchargement des polices a réussi ; sinon, renvoie false.

Voir aussi removeApplicationFont(), addApplicationFont() et addApplicationFontFromData().

[static, since 6.9] bool QFontDatabase::removeApplicationEmojiFontFamily(const QString &familyName)

Supprime familyName de la liste des polices d'emoji définies par l'application, à condition qu'il ait été ajouté précédemment avec addApplicationEmojiFontFamily().

Retourne true si le nom de famille était dans la liste et false s'il ne l'était pas.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi addApplicationEmojiFontFamily(), setApplicationEmojiFontFamilies(), applicationEmojiFontFamilies(), et removeApplicationFallbackFontFamily().

[static, since 6.8] bool QFontDatabase::removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)

Supprime familyName de la liste des polices de remplacement définies par l'application pour script, à condition qu'elle ait été ajoutée précédemment avec addApplicationFallbackFontFamily().

Retourne true si le nom de famille était dans la liste et false s'il ne l'était pas.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi addApplicationFallbackFontFamily(), setApplicationFallbackFontFamilies(), et applicationFallbackFontFamilies().

[static] bool QFontDatabase::removeApplicationFont(int id)

Supprime la police d'application précédemment chargée, identifiée par id. Renvoie true si le déchargement de la police a réussi ; sinon, il renvoie false.

Voir aussi removeAllApplicationFonts(), addApplicationFont() et addApplicationFontFromData().

[static, since 6.9] void QFontDatabase::setApplicationEmojiFontFamilies(const QStringList &familyNames)

Définit la liste des polices d'emoji définies par l'application à familyNames.

Cette fonction a été introduite dans Qt 6.9.

Voir aussi addApplicationEmojiFontFamily(), removeApplicationEmojiFontFamily(), applicationEmojiFontFamilies(), et setApplicationFallbackFontFamilies().

[static, since 6.8] void QFontDatabase::setApplicationFallbackFontFamilies(QChar::Script script, const QStringList &familyNames)

Définit la liste des polices de secours définies par l'application pour script à familyNames.

Lorsque Qt XML rencontre un caractère dans script qui n'est pas supporté par la police actuelle, il vérifiera les familles dans familyNames, dans l'ordre de la première à la dernière, jusqu'à ce qu'il trouve une correspondance. Voir addApplicationFallbackFontFamily() pour plus de détails.

Cette fonction écrase la liste actuelle des polices de remplacement définies par l'application pour script.

Cette fonction a été introduite dans Qt 6.8.

Voir aussi addApplicationFallbackFontFamily(), removeApplicationFallbackFontFamily() et applicationFallbackFontFamilies().

[static] QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)

Renvoie les tailles de points d'une police dont la famille est family et le style styleName qui seront attrayants. La liste peut être vide. Pour les polices non extensibles et les polices extensibles bitmap, cette fonction est équivalente à pointSizes().

Voir aussi pointSizes() et standardSizes().

[static] QList<int> QFontDatabase::standardSizes()

Renvoie une liste de tailles de polices standard.

Voir aussi smoothSizes() et pointSizes().

[static] QString QFontDatabase::styleString(const QFont &font)

Renvoie une chaîne décrivant le style du site font. Par exemple, "Bold Italic", "Bold", "Italic" ou "Normal". Une chaîne vide peut être renvoyée.

[static] QString QFontDatabase::styleString(const QFontInfo &fontInfo)

Renvoie une chaîne décrivant le style du site fontInfo. Par exemple, "Bold Italic", "Bold", "Italic" ou "Normal". Une chaîne vide peut être renvoyée.

[static] QStringList QFontDatabase::styles(const QString &family)

Renvoie une liste des styles disponibles pour la famille de polices family. Quelques exemples de styles : "Light", "Light Italic", "Bold", "Oblique", "Demi". La liste peut être vide.

Voir aussi families().

[static] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)

Renvoie la police de caractères la plus appropriée pour un cas type donné, afin d'assurer une bonne intégration dans l'aspect et la convivialité du système.

Voir aussi QGuiApplication::font().

[static] int QFontDatabase::weight(const QString &family, const QString &style)

Renvoie le poids de la police dont la famille est family et le style style. S'il n'existe pas de telles combinaisons de famille et de style, elle renvoie -1.

Voir aussi italic() et bold().

[static] QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)

Renvoie les noms de writingSystem (par exemple pour les afficher à l'utilisateur dans une boîte de dialogue).

[static] QString QFontDatabase::writingSystemSample(QFontDatabase::WritingSystem writingSystem)

Renvoie une chaîne de caractères contenant des exemples de caractères provenant de writingSystem.

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems()

Renvoie une liste triée des systèmes d'écriture disponibles. Cette liste est générée à partir d'informations sur toutes les polices installées sur le système.

Voir aussi families().

[static] QList<QFontDatabase::WritingSystem> QFontDatabase::writingSystems(const QString &family)

Renvoie une liste triée des systèmes d'écriture pris en charge par une police donnée family.

Voir également families().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.