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
Konstante | Wert | Beschreibung |
---|---|---|
QFontDatabase::GeneralFont | 0 | Die Standard-Systemschriftart. |
QFontDatabase::FixedFont | 1 | Die feste Schriftart, die das System empfiehlt. |
QFontDatabase::TitleFont | 2 | Die Standardschriftart des Systems für Titel. |
QFontDatabase::SmallestReadableFont | 3 | Die kleinste lesbare Systemschriftart. |
enum QFontDatabase::WritingSystem
Konstante | Wert | Beschreibung |
---|---|---|
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 | (wie bei Symbol) |
QFontDatabase::Ogham | 31 | |
QFontDatabase::Runic | 32 | |
QFontDatabase::Nko | 33 |
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.