QFontDatabase Class
La classe QFontDatabase fournit des informations sur les polices disponibles dans le système de fenêtrage sous-jacent. En savoir plus...
| En-tête : | #include <QFontDatabase> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
Remarque : toutes les fonctions de cette classe sont thread-safe.
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
Cette classe est principalement utilisée pour interroger la base de données afin d'obtenir la liste des polices families() ainsi que les valeurs pointSizes() et styles() disponibles pour chaque famille. Une alternative à pointSizes() est smoothSizes(), qui renvoie les tailles auxquelles une famille et un style donnés seront les plus esthétiques.
Si la famille de polices est proposée par 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 soit utiliser l’ancien format « fonderie-famille » avec un trait d’union, soit le format entre crochets « famille [fonderie] » ; par exemple : « Cronyx-Helvetica » ou « Helvetica [Cronyx] ». Si la famille est associée à une fonderie, elle est toujours renvoyée sous le format entre crochets, comme c’est le cas pour la valeur renvoyée par la fonction families().
La fonction font() renvoie une QFont à partir d’une famille, d’un style et d’une taille en points.
Il est possible de vérifier si une combinaison de famille et de style correspond à italic() ou à bold(), et d’en récupérer l’ weight(). De même, on peut appeler isBitmapScalable(), isSmoothlyScalable(), isScalable() et isFixedPitch().
Utilisez la méthode styleString() pour obtenir une version texte d’un style.
La classe QFontDatabase fournit certaines fonctions d’aide, par exemple standardSizes(). Vous pouvez récupérer la description d’un système d’écriture à l’aide de writingSystemName(), et un échantillon de caractères d’un système d’écriture avec 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 récupère la liste des familles de polices, la liste des styles pour chaque famille, ainsi que les tailles en points disponibles pour chaque combinaison de famille et de style, puis affiche ces informations dans une arborescence.
Voir également QFont, QFontInfo et QFontMetrics.
Documentation sur les types de membres
enum QFontDatabase::SystemFont
| Constante | Valeur | Description |
|---|---|---|
QFontDatabase::GeneralFont | 0 | Police par défaut du système. |
QFontDatabase::FixedFont | 1 | La police fixe recommandée par le système. |
QFontDatabase::TitleFont | 2 | La police système standard pour les titres. |
QFontDatabase::SmallestReadableFont | 3 | La plus petite police système lisible. |
enum QFontDatabase::WritingSystem
| Constante | Valeur | Description |
|---|---|---|
QFontDatabase::Any | 0 | |
QFontDatabase::Latin | 1 | |
QFontDatabase::Greek | 2 | |
QFontDatabase::Cyrillic | 3 | |
QFontDatabase::Armenian | 4 | |
QFontDatabase::Hebrew | 5 | |
QFontDatabase::Arabic | 6 | |
QFontDatabase::Syriac | 7 | |
QFontDatabase::Thaana | 8 | |
QFontDatabase::Devanagari | 9 | |
QFontDatabase::Bengali | 10 | |
QFontDatabase::Gurmukhi | 11 | |
QFontDatabase::Gujarati | 12 | |
QFontDatabase::Oriya | 13 | |
QFontDatabase::Tamil | 14 | |
QFontDatabase::Telugu | 15 | |
QFontDatabase::Kannada | 16 | |
QFontDatabase::Malayalam | 17 | |
QFontDatabase::Sinhala | 18 | |
QFontDatabase::Thai | 19 | |
QFontDatabase::Lao | 20 | |
QFontDatabase::Tibetan | 21 | |
QFontDatabase::Myanmar | 22 | |
QFontDatabase::Georgian | 23 | |
QFontDatabase::Khmer | 24 | |
QFontDatabase::SimplifiedChinese | 25 | |
QFontDatabase::TraditionalChinese | 26 | |
QFontDatabase::Japanese | 27 | |
QFontDatabase::Korean | 28 | |
QFontDatabase::Vietnamese | 29 | |
QFontDatabase::Symbol | 30 | |
QFontDatabase::Other | Symbol | (équivalent à « Symbole ») |
QFontDatabase::Ogham | 31 | |
QFontDatabase::Runic | 32 | |
QFontDatabase::Nko | 33 |
Documentation sur les fonctions membres
[static, since 6.9] void QFontDatabase::addApplicationEmojiFontFamily(const QString &familyName)
Ajoute « familyName » en tant que police d'émojis définie par l'application.
Pour afficher des emojis multicolores ou des séquences d'emojis, Qt privilégie par défaut la police d'emojis par défaut du système. Il arrive parfois que l'application souhaite remplacer cette police par défaut, soit pour obtenir un style visuel spécifique, soit pour afficher des emojis non pris en charge par le système.
Cette fonction a été introduite dans Qt 6.9.
Voir également 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 non pris en charge par la police sélectionnée, il parcourt une liste de polices de secours afin de trouver une correspondance. Cela permet de combiner plusieurs scripts dans une même chaîne de caractères, même si la police principale ne les prend pas en charge.
La liste des polices de secours est sélectionnée en fonction de l'écriture de la chaîne ainsi que d'autres conditions, telles que la langue du système.
Bien que la liste de repli du système soit généralement suffisante, il existe des cas où il est utile de remplacer le comportement par défaut. C'est notamment le cas lorsque l'on souhaite utiliser des polices d'application comme polices de repli afin de garantir la cohérence entre les différentes plateformes.
Dans un autre cas, l’application peut être écrite dans un script présentant des différences régionales et devoir être exécutée sans traduction dans plusieurs régions. Dans ce cas, il peut être utile de remplacer la police de secours de la région locale par une police correspondant à la langue de l’application.
En transmettant ` familyName ` à la fonction `addApplicationFallbackFontFamily()`, celle-ci deviendra la famille de polices privilégiée lors de la recherche de caractères manquants à partir de ` script`. L’ script e doit être un script valide (QChar::Script_Latin ou supérieur). Lors de l’ajout de plusieurs polices pour un même script, celles-ci seront classées par ordre inverse de priorité : la dernière famille ajoutée sera donc vérifiée en premier, et ainsi de suite.
Remarque : l’algorithme de correspondance des policesde Qt considère QChar::Script_Common (script indéterminé) et QChar::Script_Latin comme identiques. L’ajout d’une police de secours pour l’une ou l’autre s’appliquera également à l’autre.
Cette fonction a été introduite dans Qt 6.8.
Voir également 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 identifiant est renvoyé ; celui-ci peut être utilisé pour supprimer à nouveau la police à l'aide de ` removeApplicationFont()` ou pour récupérer la liste des noms de familles 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 également 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 identifiant est renvoyé ; celui-ci peut être utilisé pour supprimer à nouveau la police à l'aide de ` removeApplicationFont()` ou pour récupérer la liste des noms de familles 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 également ` addApplicationFont()`, ` applicationFontFamilies()` et ` removeApplicationFont()`.
[static, since 6.9] QStringList QFontDatabase::applicationEmojiFontFamilies()
Renvoie la liste des familles de polices d'émojis définies par l'application.
Cette fonction a été introduite dans Qt 6.9.
Voir également addApplicationEmojiFontFamily(), removeApplicationEmojiFontFamily(), setApplicationEmojiFontFamilies() et applicationFallbackFontFamilies().
[static, since 6.8] QStringList QFontDatabase::applicationFallbackFontFamilies(QChar::Script script)
Renvoie la liste des familles de polices de secours définies par l'application et précédemment ajoutées pour script à l'aide de la fonction addApplicationFallbackFontFamily().
Cette fonction a été introduite dans Qt 6.8.
Voir également setApplicationFallbackFontFamilies(), addApplicationFallbackFontFamily() et removeApplicationFallbackFontFamily().
[static] QStringList QFontDatabase::applicationFontFamilies(int id)
Renvoie une liste des familles de polices pour la police d'application donnée identifiée par id.
Voir également addApplicationFont() et addApplicationFontFromData().
[static] bool QFontDatabase::bold(const QString &family, const QString &style)
Renvoie true si la police de la famille family et du style style est en gras ; sinon, renvoie false.
Voir également italic() et weight().
[static] QStringList QFontDatabase::families(QFontDatabase::WritingSystem writingSystem = Any)
Renvoie une liste triée des familles de polices disponibles prenant en charge la propriété ` writingSystem`.
Si une famille existe chez plusieurs fonderies, le nom renvoyé pour cette police se présente sous la forme « famille [fonderie] ». Exemples : « Times [Adobe] », « Times [Cronyx] », « Palatino ».
Voir aussi 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 en points 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 redimensionnable ; sinon, renvoie « false ». Le redimensionnement d'une police bitmap produit généralement un résultat peu esthétique et difficilement lisible, car les pixels de la police sont redimensionnés. Si vous devez redimensionner une police bitmap, il est préférable de la redimensionner à l'une des tailles fixes renvoyées par la fonction « 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 à espacement 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.
C'est le cas, par exemple, sous macOS et iOS, où les polices de l'interface utilisateur du système ne sont pas accessibles à l'utilisateur. Par souci d'exhaustivité, 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 de polices afin de masquer les polices privé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 redimensionnable ; sinon, renvoie « false ».
Voir également 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 redimensionnable en douceur ; sinon, renvoie false. Si cette fonction renvoie true, cette police peut être redimensionnée en toute sécurité à n'importe quelle taille, et le résultat sera toujours esthétique.
Voir également isScalable() et isBitmapScalable().
[static] bool QFontDatabase::italic(const QString &family, const QString &style)
Renvoie « true » si la police de famille « family » et de style « style » est en italique ; sinon, renvoie « false ».
Voir également weight() et bold().
[static] QList<int> QFontDatabase::pointSizes(const QString &family, const QString &styleName = QString())
Renvoie une liste des tailles de caractères disponibles pour la police dont la famille est family et le style styleName. La liste peut être vide.
Voir également smoothSizes() et standardSizes().
[static] bool QFontDatabase::removeAllApplicationFonts()
Supprime toutes les polices locales à l'application précédemment ajoutées à l'aide des fonctions addApplicationFont() et addApplicationFontFromData().
Renvoie ` true ` si le déchargement des polices a réussi ; sinon, renvoie ` false`.
Voir également removeApplicationFont(), addApplicationFont() et addApplicationFontFromData().
[static, since 6.9] bool QFontDatabase::removeApplicationEmojiFontFamily(const QString &familyName)
Supprime « familyName » de la liste des polices d'émojis définies par l'application, à condition qu'il ait été préalablement ajouté à l'aide de la fonction ` addApplicationEmojiFontFamily()`.
Renvoie « true » si le nom de la famille figurait dans la liste et « false » dans le cas contraire.
Cette fonction a été introduite dans Qt 6.9.
Voir également 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 secours définies par l’application pour script, à condition qu’elle ait été préalablement ajoutée à l’aide de la fonction addApplicationFallbackFontFamily().
Renvoie « true » si le nom de la famille figurait dans la liste et « false » dans le cas contraire.
Cette fonction a été introduite dans Qt 6.8.
Voir également 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, renvoie false.
Voir également removeAllApplicationFonts(), addApplicationFont() et addApplicationFontFromData().
[static, since 6.9] void QFontDatabase::setApplicationEmojiFontFamilies(const QStringList &familyNames)
Définit la liste des polices d'émojis définies par l'application sur familyNames.
Cette fonction a été introduite dans Qt 6.9.
Voir également 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 sur familyNames.
Lorsque Qt rencontre un caractère dans ` script ` qui n’est pas pris en charge par la police actuelle, il vérifie 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 remplace la liste actuelle des polices de secours définies par l’application pour script.
Cette fonction a été introduite dans Qt 6.8.
Voir également addApplicationFallbackFontFamily(), removeApplicationFallbackFontFamily() et applicationFallbackFontFamilies().
[static] QList<int> QFontDatabase::smoothSizes(const QString &family, const QString &styleName)
Renvoie les tailles en points d’une police dont la famille est family et le style styleName, qui donneront un rendu esthétique. La liste peut être vide. Pour les polices non redimensionnables et les polices redimensionnables de type bitmap, cette fonction est équivalente à pointSizes().
Voir également pointSizes() et standardSizes().
[static] QList<int> QFontDatabase::standardSizes()
Renvoie une liste des tailles de police standard.
Voir également smoothSizes() et pointSizes().
[static] QString QFontDatabase::styleString(const QFont &font)
Renvoie une chaîne de caractères décrivant le style de l'font. Par exemple, « Gras italique », « Gras », « Italique » ou « Normal ». Une chaîne vide peut être renvoyée.
[static] QString QFontDatabase::styleString(const QFontInfo &fontInfo)
Renvoie une chaîne de caractères décrivant le style de l'fontInfo. Par exemple, « Gras italique », « Gras », « Italique » 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. Exemples de styles : « Light », « Light Italic », « Bold », « Oblique », « Demi ». La liste peut être vide.
Voir également families().
[static] QFont QFontDatabase::systemFont(QFontDatabase::SystemFont type)
Renvoie la police la plus adaptée à un cas d'type donné, afin d'assurer une intégration harmonieuse avec l'interface graphique du système.
Voir aussi QGuiApplication::font().
[static] int QFontDatabase::weight(const QString &family, const QString &style)
Renvoie l'épaisseur de la police dont la famille est family et le style style. Si cette combinaison de famille et de style n'existe pas, renvoie -1.
Voir également italic() et bold().
[static] QString QFontDatabase::writingSystemName(QFontDatabase::WritingSystem writingSystem)
Renvoie les noms des « 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 tirés 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 des informations relatives à toutes les polices installées sur le système.
Voir également 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.