QFontDatabase Class

Die Klasse QFontDatabase liefert Informationen über die im zugrunde liegenden Fenstersystem verfügbaren Schriftarten. Mehr...

Kopfzeile: #include <QFontDatabase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Hinweis: Alle Funktionen in dieser Klasse sind thread-sicher.

Öffentliche Typen

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

Statische öffentliche Mitglieder

(since 6.8) void addApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
int addApplicationFont(const QString &fileName)
int addApplicationFontFromData(const QByteArray &fontData)
(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.8) bool removeApplicationFallbackFontFamily(QChar::Script script, const QString &familyName)
bool removeApplicationFont(int id)
(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)

Detaillierte Beschreibung

Die häufigsten Verwendungen dieser Klasse sind die Abfrage der Datenbank nach der Liste der Schriftarten families() und nach pointSizes() und styles(), die für jede Familie verfügbar sind. Eine Alternative zu pointSizes() ist smoothSizes(), die die Größen zurückgibt, bei denen eine bestimmte Familie und ein bestimmter Stil attraktiv aussehen.

Wenn die Schriftfamilie von zwei oder mehr Herstellern erhältlich ist, ist der Name des Herstellers im Namen der Familie enthalten, z. B.: "Helvetica [Adobe]" und "Helvetica [Cronyx]". Wenn Sie eine Familie angeben, können Sie entweder das alte Format "foundry-family" mit Bindestrich oder das Format "family [foundry]" in Klammern verwenden, zum Beispiel: "Cronyx-Helvetica" oder "Helvetica [Cronyx]". Wenn die Familie eine Gießerei hat, wird sie immer im Klammerformat zurückgegeben, wie dies auch bei dem von families() zurückgegebenen Wert der Fall ist.

Die Funktion font() gibt eine QFont zurück, die eine Familie, einen Stil und eine Punktgröße enthält.

Eine Kombination aus Familie und Stil kann geprüft werden, um festzustellen, ob es sich um italic() oder bold() handelt, und um den Wert weight() zu ermitteln. Auf ähnliche Weise können wir isBitmapScalable(), isSmoothlyScalable(), isScalable() und isFixedPitch() aufrufen.

Verwenden Sie styleString(), um eine Textversion eines Stils zu erhalten.

Die Klasse QFontDatabase bietet einige Hilfsfunktionen, zum Beispiel standardSizes(). Mit writingSystemName() können Sie die Beschreibung eines Schriftsystems abrufen, mit writingSystemSample() ein Beispiel für die Zeichen eines Schriftsystems.

Beispiel:

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

Dieses Beispiel ruft die Liste der Schriftfamilien, die Liste der Stile für jede Familie und die Punktgrößen ab, die für jede Kombination aus Familie und Stil verfügbar sind, und zeigt diese Informationen in einer Baumansicht an.

Siehe auch QFont, QFontInfo, und QFontMetrics.

Dokumentation der Mitgliedstypen

enum QFontDatabase::SystemFont

KonstanteWertBeschreibung
QFontDatabase::GeneralFont0Die Standard-Systemschriftart.
QFontDatabase::FixedFont1Die feste Schriftart, die das System empfiehlt.
QFontDatabase::TitleFont2Die Standardschriftart des Systems für Titel.
QFontDatabase::SmallestReadableFont3Die kleinste lesbare Systemschriftart.

enum QFontDatabase::WritingSystem

KonstanteWertBeschreibung
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(wie bei Symbol)
QFontDatabase::Ogham31
QFontDatabase::Runic32
QFontDatabase::Nko33

Dokumentation der Mitgliedsfunktionen

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

Fügt familyName als anwendungsdefinierte Ausweichschriftart für script hinzu.

Wenn Qt auf Zeichen stößt, die von der ausgewählten Schriftart nicht unterstützt werden, durchsucht es eine Liste von Ausweichschriften, um eine Übereinstimmung für sie zu finden. Dadurch wird sichergestellt, dass die Kombination mehrerer Schriften in einer einzigen Zeichenkette möglich ist, auch wenn die Hauptschriftart diese nicht unterstützt.

Die Liste der Ausweichschriften wird auf der Grundlage der Schrift der Zeichenfolge sowie anderer Bedingungen, wie der Systemsprache, ausgewählt.

Obwohl die Liste der Ausweichschriften in der Regel ausreichend ist, gibt es Fälle, in denen es sinnvoll ist, das Standardverhalten zu überschreiben. Ein solcher Fall ist die Verwendung von Anwendungsschriftarten als Fallback, um plattformübergreifende Konsistenz zu gewährleisten.

In einem anderen Fall kann die Anwendung in einem Skript mit regionalen Unterschieden geschrieben sein und soll in mehreren Regionen unübersetzt ausgeführt werden. In diesem Fall kann es sinnvoll sein, den Fallback für die lokale Region durch einen Fallback zu ersetzen, der der Sprache der Anwendung entspricht.

Durch die Übergabe von familyName an addApplicationFallbackFontFamily() wird diese zur bevorzugten Schriftfamilie beim Abgleich mit fehlenden Zeichen aus script. script muss eine gültige Schrift sein (QChar::Script_Latin oder höher). Wenn mehrere Schriftarten für dasselbe Skript hinzugefügt werden, werden sie in umgekehrter Reihenfolge priorisiert, so dass die zuletzt hinzugefügte Familie zuerst geprüft wird und so weiter.

Hinweis: Der Algorithmus von Qt zum Abgleich von Schriftarten betrachtet QChar::Script_Common (unbestimmte Schrift) und QChar::Script_Latin als dasselbe. Das Hinzufügen eines Fallbacks für eine der beiden Schriften wird auch für die andere gelten.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setApplicationFallbackFontFamilies(), removeApplicationFallbackFontFamily(), und applicationFallbackFontFamilies().

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

Lädt die Schriftart aus der von fileName angegebenen Datei und stellt sie der Anwendung zur Verfügung. Es wird eine ID zurückgegeben, die verwendet werden kann, um die Schriftart mit removeApplicationFont() wieder zu entfernen oder um die Liste der in der Schriftart enthaltenen Familiennamen abzurufen.

Die Funktion gibt -1 zurück, wenn die Schriftart nicht geladen werden konnte.

Derzeit werden nur TrueType-Schriften, TrueType-Schriftsammlungen und OpenType-Schriften unterstützt.

Siehe auch addApplicationFontFromData(), applicationFontFamilies(), und removeApplicationFont().

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

Lädt die Schriftart aus den von fontData angegebenen Binärdaten und stellt sie der Anwendung zur Verfügung. Es wird eine ID zurückgegeben, die verwendet werden kann, um die Schriftart mit removeApplicationFont() wieder zu entfernen oder um die Liste der in der Schriftart enthaltenen Familiennamen abzurufen.

Die Funktion gibt -1 zurück, wenn die Schriftart nicht geladen werden konnte.

Derzeit werden nur TrueType-Schriften, TrueType-Schriftsammlungen und OpenType-Schriften unterstützt.

Siehe auch addApplicationFont(), applicationFontFamilies(), und removeApplicationFont().

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

Gibt die Liste der anwendungsdefinierten Fallback-Schriftfamilien zurück, die zuvor von der Funktion addApplicationFallbackFontFamily() für script hinzugefügt wurden.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch setApplicationFallbackFontFamilies(), addApplicationFallbackFontFamily(), und removeApplicationFallbackFontFamily().

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

Gibt eine Liste von Schriftfamilien für die angegebene Anwendungsschrift zurück, die durch id identifiziert wird.

Siehe auch addApplicationFont() und addApplicationFontFromData().

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

Gibt true zurück, wenn die Schrift mit der Familie family und dem Stil style fett ist; andernfalls wird false zurückgegeben.

Siehe auch italic() und weight().

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

Gibt eine sortierte Liste der verfügbaren Schriftfamilien zurück, die die writingSystem unterstützen.

Wenn eine Familie in mehreren Foundries existiert, hat der zurückgegebene Name für diese Schrift die Form "family [foundry]". Beispiele: "Times [Adobe]", "Times [Cronyx]", "Palatino".

Siehe auch writingSystems().

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

Gibt ein QFont -Objekt mit der Familie family, dem Stil style und der Punktgröße pointSize zurück. Wenn keine passende Schriftart erstellt werden konnte, wird ein QFont Objekt zurückgegeben, das die Standardschriftart der Anwendung verwendet.

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

Gibt true zurück, wenn die Schriftart mit der Familie family und dem Stil style eine skalierbare Bitmap-Schriftart ist; andernfalls wird false zurückgegeben. Die Skalierung einer Bitmap-Schriftart führt in der Regel zu einem unattraktiven, kaum lesbaren Ergebnis, da die Pixel der Schrift skaliert werden. Wenn Sie eine Bitmap-Schrift skalieren müssen, ist es besser, sie auf eine der festen Größen zu skalieren, die von smoothSizes() zurückgegeben werden.

Siehe auch isScalable() und isSmoothlyScalable().

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

Gibt true zurück, wenn die Schrift mit der Familie family und dem Stil style einen festen Abstand hat; andernfalls wird false zurückgegeben.

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

Gibt true zurück, wenn und nur wenn die Schriftfamilie family privat ist.

Dies ist z. B. unter macOS und iOS der Fall, wo die System-UI-Schriften für den Benutzer nicht zugänglich sind. Der Vollständigkeit halber: QFontDatabase::families() gibt alle Schriftfamilien zurück, auch die privaten. Sie sollten diese Funktion verwenden, wenn Sie ein Steuerelement für die Schriftauswahl entwickeln, um private Schriftarten zu verbergen.

Siehe auch families().

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

Gibt true zurück, wenn die Schrift mit der Familie family und dem Stil style skalierbar ist; andernfalls wird false zurückgegeben.

Siehe auch isBitmapScalable() und isSmoothlyScalable().

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

Gibt true zurück, wenn die Schriftart mit der Familie family und dem Stil style stufenlos skalierbar ist; andernfalls gibt sie false zurück. Wenn diese Funktion true zurückgibt, ist es sicher, diese Schriftart auf eine beliebige Größe zu skalieren, und das Ergebnis wird immer ansprechend aussehen.

Siehe auch isScalable() und isBitmapScalable().

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

Gibt true zurück, wenn die Schrift mit der Familie family und dem Stil style kursiv ist; andernfalls wird false zurückgegeben.

Siehe auch weight() und bold().

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

Gibt eine Liste der Punktgrößen zurück, die für die Schriftart mit der Familie family und dem Stil styleName verfügbar sind. Die Liste kann leer sein.

Siehe auch smoothSizes() und standardSizes().

[static] bool QFontDatabase::removeAllApplicationFonts()

Entfernt alle anwendungslokalen Schriftarten, die zuvor mit addApplicationFont() und addApplicationFontFromData() hinzugefügt wurden.

Gibt true zurück, wenn das Entladen der Schriften erfolgreich war; andernfalls wird false zurückgegeben.

Siehe auch removeApplicationFont(), addApplicationFont(), und addApplicationFontFromData().

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

Entfernt familyName aus der Liste der anwendungsdefinierten Ausweichschriftarten für script, sofern sie zuvor mit addApplicationFallbackFontFamily() hinzugefügt wurde.

Gibt true zurück, wenn der Familienname in der Liste war, und false, wenn er es nicht war.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch addApplicationFallbackFontFamily(), setApplicationFallbackFontFamilies(), und applicationFallbackFontFamilies().

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

Entfernt die zuvor geladene Anwendungsschriftart, die durch id identifiziert wird. Gibt true zurück, wenn das Entladen der Schriftart erfolgreich war; andernfalls wird false zurückgegeben.

Siehe auch removeAllApplicationFonts(), addApplicationFont(), und addApplicationFontFromData().

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

Setzt die Liste der anwendungsdefinierten Fallback-Schriften für script auf familyNames.

Wenn Qt auf ein Zeichen in script stößt, das von der aktuellen Schriftart nicht unterstützt wird, prüft es die Familien in familyNames in der Reihenfolge vom ersten bis zum letzten, bis es eine Übereinstimmung findet. Siehe addApplicationFallbackFontFamily() für weitere Details.

Diese Funktion überschreibt die aktuelle Liste der anwendungsdefinierten Fallback-Fonts für script.

Diese Funktion wurde in Qt 6.8 eingeführt.

Siehe auch addApplicationFallbackFontFamily(), removeApplicationFallbackFontFamily(), und applicationFallbackFontFamilies().

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

Gibt die Punktgrößen einer Schriftart mit der Familie family und dem Stil styleName zurück, die ansprechend aussehen werden. Die Liste kann leer sein. Für nicht skalierbare Schriftarten und skalierbare Bitmap-Schriftarten ist diese Funktion äquivalent zu pointSizes().

Siehe auch pointSizes() und standardSizes().

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

Gibt eine Liste von Standard-Schriftgrößen zurück.

Siehe auch smoothSizes() und pointSizes().

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

Gibt eine Zeichenkette zurück, die den Stil des font beschreibt. z. B. "Bold Italic", "Bold", "Italic" oder "Normal". Es kann auch eine leere Zeichenfolge zurückgegeben werden.

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

Gibt eine Zeichenkette zurück, die den Stil des fontInfo beschreibt. z. B. "Bold Italic", "Bold", "Italic" oder "Normal". Es kann auch eine leere Zeichenfolge zurückgegeben werden.

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

Gibt eine Liste der Stile zurück, die für die Schriftfamilie family verfügbar sind. Einige Beispielstile: "Light", "Light Italic", "Bold", "Oblique", "Demi". Die Liste kann leer sein.

Siehe auch families().

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

Liefert die am besten geeignete Schriftart für einen gegebenen type Fall für die richtige Integration in das Erscheinungsbild des Systems.

Siehe auch QGuiApplication::font().

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

Gibt das Gewicht der Schriftart mit der Familie family und dem Stil style zurück. Gibt es keine solche Kombination aus Familie und Stil, wird -1 zurückgegeben.

Siehe auch italic() und bold().

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

Gibt die Namen der writingSystem zurück (z.B. zur Anzeige für den Benutzer in einem Dialog).

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

Gibt eine Zeichenkette mit Beispielzeichen aus writingSystem zurück.

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

Gibt eine sortierte Liste der verfügbaren Schriftsysteme zurück. Diese Liste wird aus Informationen über alle auf dem System installierten Schriftarten erstellt.

Siehe auch families().

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

Gibt eine sortierte Liste der Schriftsysteme zurück, die von einer bestimmten Schriftart family unterstützt werden.

Siehe auch families().

© 2025 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.