Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
\threadsafe \inmodule QtGui More...
#include <qfontdatabase.h>
Public Types | |
enum | WritingSystem { Any , Latin , Greek , Cyrillic , Armenian , Hebrew , Arabic , Syriac , Thaana , Devanagari , Bengali , Gurmukhi , Gujarati , Oriya , Tamil , Telugu , Kannada , Malayalam , Sinhala , Thai , Lao , Tibetan , Myanmar , Georgian , Khmer , SimplifiedChinese , TraditionalChinese , Japanese , Korean , Vietnamese , Symbol , Other = Symbol , Ogham , Runic , Nko , WritingSystemsCount } |
\value Any \value Latin \value Greek \value Cyrillic \value Armenian \value Hebrew \value Arabic \value Syriac \value Thaana \value Devanagari \value Bengali \value Gurmukhi \value Gujarati \value Oriya \value Tamil \value Telugu \value Kannada \value Malayalam \value Sinhala \value Thai \value Lao \value Tibetan \value Myanmar \value Georgian \value Khmer \value SimplifiedChinese \value TraditionalChinese \value Japanese \value Korean \value Vietnamese \value Symbol \value Other (the same as Symbol) \value Ogham \value Runic \value Nko More... | |
enum | SystemFont { GeneralFont , FixedFont , TitleFont , SmallestReadableFont } |
\value GeneralFont The default system font. More... | |
Public Member Functions | |
QFontDatabase ()=delete | |
Static Public Member Functions | |
static QList< int > | standardSizes () |
Returns a list of standard font sizes. | |
static QList< WritingSystem > | writingSystems () |
Returns a sorted list of the available writing systems. | |
static QList< WritingSystem > | writingSystems (const QString &family) |
Returns a sorted list of the writing systems supported by a given font family. | |
static QStringList | families (WritingSystem writingSystem=Any) |
Returns a sorted list of the available font families which support the writingSystem. | |
static QStringList | styles (const QString &family) |
Returns a list of the styles available for the font family family. | |
static QList< int > | pointSizes (const QString &family, const QString &style=QString()) |
Returns a list of the point sizes available for the font that has family family and style styleName. | |
static QList< int > | smoothSizes (const QString &family, const QString &style) |
Returns the point sizes of a font that has family family and style styleName that will look attractive. | |
static QString | styleString (const QFont &font) |
Returns a string that describes the style of the font. | |
static QString | styleString (const QFontInfo &fontInfo) |
Returns a string that describes the style of the fontInfo. | |
static QFont | font (const QString &family, const QString &style, int pointSize) |
Returns a QFont object that has family family, style style and point size pointSize. | |
static bool | isBitmapScalable (const QString &family, const QString &style=QString()) |
Returns true if the font that has family family and style style is a scalable bitmap font; otherwise returns false . | |
static bool | isSmoothlyScalable (const QString &family, const QString &style=QString()) |
Returns true if the font that has family family and style style is smoothly scalable; otherwise returns false . | |
static bool | isScalable (const QString &family, const QString &style=QString()) |
Returns true if the font that has family family and style style is scalable; otherwise returns false . | |
static bool | isFixedPitch (const QString &family, const QString &style=QString()) |
Returns true if the font that has family family and style style is fixed pitch; otherwise returns false . | |
static bool | italic (const QString &family, const QString &style) |
Returns true if the font that has family family and style style is italic; otherwise returns false . | |
static bool | bold (const QString &family, const QString &style) |
Returns true if the font that has family family and style style is bold; otherwise returns false . | |
static int | weight (const QString &family, const QString &style) |
Returns the weight of the font that has family family and style style. | |
static bool | hasFamily (const QString &family) |
static bool | isPrivateFamily (const QString &family) |
static QString | writingSystemName (WritingSystem writingSystem) |
Returns the names the writingSystem (e.g. | |
static QString | writingSystemSample (WritingSystem writingSystem) |
Returns a string with sample characters from writingSystem. | |
static int | addApplicationFont (const QString &fileName) |
static int | addApplicationFontFromData (const QByteArray &fontData) |
static QStringList | applicationFontFamilies (int id) |
static bool | removeApplicationFont (int id) |
static bool | removeAllApplicationFonts () |
static void | addApplicationFallbackFontFamily (QChar::Script script, const QString &familyName) |
static bool | removeApplicationFallbackFontFamily (QChar::Script script, const QString &familyName) |
static void | setApplicationFallbackFontFamilies (QChar::Script, const QStringList &familyNames) |
static QStringList | applicationFallbackFontFamilies (QChar::Script script) |
static QFont | systemFont (SystemFont type) |
\threadsafe \inmodule QtGui
The QFontDatabase class provides information about the fonts available in the underlying window system.
The most common uses of this class are to query the database for the list of font families() and for the pointSizes() and styles() that are available for each family. An alternative to pointSizes() is smoothSizes() which returns the sizes at which a given family and style will look attractive.
If the font family is available from two or more foundries the foundry name is included in the family name; for example: "Helvetica [Adobe]" and "Helvetica [Cronyx]". When you specify a family, you can either use the old hyphenated "foundry-family" format or the bracketed "family [foundry]" format; for example: "Cronyx-Helvetica" or "Helvetica [Cronyx]". If the family has a foundry it is always returned using the bracketed format, as is the case with the value returned by families().
The font() function returns a QFont given a family, style and point size.
A family and style combination can be checked to see if it is italic() or bold(), and to retrieve its weight(). Similarly we can call isBitmapScalable(), isSmoothlyScalable(), isScalable() and isFixedPitch().
Use the styleString() to obtain a text version of a style.
The QFontDatabase class provides some helper functions, for example, standardSizes(). You can retrieve the description of a writing system using writingSystemName(), and a sample of characters in a writing system with writingSystemSample().
Example:
This example gets the list of font families, the list of styles for each family, and the point sizes that are available for each combination of family and style, displaying this information in a tree view.
Definition at line 18 of file qfontdatabase.h.
\value GeneralFont The default system font.
\value FixedFont The fixed font that the system recommends. \value TitleFont The system standard font for titles. \value SmallestReadableFont The smallest readable system font.
Enumerator | |
---|---|
GeneralFont | |
FixedFont | |
TitleFont | |
SmallestReadableFont |
Definition at line 66 of file qfontdatabase.h.
\value Any \value Latin \value Greek \value Cyrillic \value Armenian \value Hebrew \value Arabic \value Syriac \value Thaana \value Devanagari \value Bengali \value Gurmukhi \value Gujarati \value Oriya \value Tamil \value Telugu \value Kannada \value Malayalam \value Sinhala \value Thai \value Lao \value Tibetan \value Myanmar \value Georgian \value Khmer \value SimplifiedChinese \value TraditionalChinese \value Japanese \value Korean \value Vietnamese \value Symbol \value Other (the same as Symbol) \value Ogham \value Runic \value Nko
\omitvalue WritingSystemsCount
Definition at line 22 of file qfontdatabase.h.
|
delete |
Creates a font database object.
|
static |
Adds familyName as an application-defined fallback font for script.
When Qt encounters characters that are not supported by the selected font, it will search through a list of fallback fonts to find a match for them. This ensures that combining multiple scripts in a single string is possible, even if the main font does not support them.
The list of fallback fonts is selected based on the script of the string as well as other conditions, such as system language.
While the system fallback list is usually sufficient, there are cases where it is useful to override the default behavior. One such case is for using application fonts as fallback to ensure cross-platform consistency.
In another case the application may be written in a script with regional differences and want to run it untranslated in multiple regions. In this case, it might be useful to override the local region's fallback with one that matches the language of the application.
By passing familyName to addApplicationFallbackFontFamily(), this will become the preferred family when matching missing characters from script. The script must be a valid script (QChar::Script_Latin
or higher). When adding multiple fonts for the same script, they will be prioritized in reverse order, so that the last family added will be checked first and so on.
Definition at line 2391 of file qfontdatabase.cpp.
References db, QFontDatabasePrivate::instance(), it, and qCWarning.
|
static |
\since 4.2 Loads the font from the file specified by \a fileName and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.
! [add-application-font-doc] The function returns -1 if the font could not be loaded.
Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported. ! [add-application-font-doc]
\sa addApplicationFontFromData(), applicationFontFamilies(), removeApplicationFont()
Definition at line 2220 of file qfontdatabase.cpp.
References fileName, QFontDatabasePrivate::instance(), Q_TRACE, and QIODeviceBase::ReadOnly.
Referenced by QQuickFontLoader::setSource().
|
static |
Loads the font from binary data specified by fontData and makes it available to the application. An ID is returned that can be used to remove the font again with removeApplicationFont() or to retrieve the list of family names contained in the font.
add-application-font-doc
Definition at line 2248 of file qfontdatabase.cpp.
References QFontDatabasePrivate::instance().
Referenced by FontProvider::fetchFont().
|
static |
Returns the list of application-defined fallback font families previously added for script by the \l{addApplicationFallbackFontFamily()} function.
Definition at line 2475 of file qfontdatabase.cpp.
References db, and QFontDatabasePrivate::instance().
|
static |
Returns a list of font families for the given application font identified by id.
Definition at line 2262 of file qfontdatabase.cpp.
References d, QFontDatabasePrivate::instance(), properties, and ret.
Referenced by FontProvider::fetchFont().
Returns true
if the font that has family family and style style is bold; otherwise returns false
.
Definition at line 1844 of file qfontdatabase.cpp.
References QFont::Bold, Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontFoundry::style(), QtFontStyle::styleName, QtFontFoundry::styles, and QtFontStyle::Key::weight.
|
static |
Returns a sorted list of the available font families which support the writingSystem.
If a family exists in several foundries, the returned name for that font is in the form "family [foundry]". Examples: "Times [Adobe]", "Times [Cronyx]", "Palatino".
Definition at line 1432 of file qfontdatabase.cpp.
References QString::append(), d, QFontDatabasePrivate::ensureFontDatabase(), i, QString::isEmpty(), j, QtFontFoundry::name, str, and QtFontFamily::Supported.
Referenced by QWasmTheme::QWasmTheme(), QWindowsFontDatabaseBase::extraTryFontsForFamily(), QQuickGuiProvider::fontFamilies(), QQuickUniversalTheme::initialize(), QWindowsFontDatabaseFT::populateFamilyAliases(), QWindowsFontDatabase::populateFamilyAliases(), QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), QFontComboBoxPrivate::updateModel(), and qfontdatabase_snippets::wrapper().
Returns a QFont object that has family family, style style and point size pointSize.
If no matching font could be created, a QFont object that uses the application's default font is returned.
Definition at line 1701 of file qfontdatabase.cpp.
References bestStyle(), Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), QGuiApplication::font(), QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QFont::setStyle(), QtFontFoundry::style(), QtFontStyle::styleName, and QtFontFoundry::styles.
Referenced by qfontForCocoaFont(), and QFontDialogPrivate::updateSample().
|
static |
Definition at line 1908 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, d, QFontDatabasePrivate::ensureFontDatabase(), i, parseFontName(), and QFontDatabasePrivate::resolveFontFamilyAlias().
Referenced by QWindowsFontDatabaseBase::extraTryFontsForFamily(), QQuickImagineTheme::initialize(), QQuickMaterialTheme::initialize(), and qSetFontFamilyFromTokens().
|
static |
Returns true
if the font that has family family and style style is a scalable bitmap font; otherwise returns false
.
Scaling a bitmap font usually produces an unattractive hardly readable result, because the pixels of the font are scaled. If you need to scale a bitmap font it is better to scale it to one of the fixed sizes returned by smoothSizes().
Definition at line 1538 of file qfontdatabase.cpp.
References QtFontStyle::bitmapScalable, Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontStyle::smoothScalable, QtFontStyle::styleName, and QtFontFoundry::styles.
|
static |
Returns true
if the font that has family family and style style is fixed pitch; otherwise returns false
.
Definition at line 1513 of file qfontdatabase.cpp.
References d, QFontDatabasePrivate::ensureFontDatabase(), parseFontName(), and Q_UNUSED.
Referenced by QWasmTheme::QWasmTheme(), QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), and QFontComboBoxPrivate::updateModel().
|
static |
Returns true
if and only if the family font family is private.
This happens, for instance, on \macos and iOS, where the system UI fonts are not accessible to the user. For completeness, QFontDatabase::families() returns all font families, including the private ones. You should use this function if you are developing a font selection control in order to keep private fonts hidden.
Definition at line 1941 of file qfontdatabase.cpp.
References QGuiApplicationPrivate::platformIntegration().
Referenced by QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), and QFontComboBoxPrivate::updateModel().
Returns true
if the font that has family family and style style is scalable; otherwise returns false
.
Definition at line 1628 of file qfontdatabase.cpp.
|
static |
Returns true
if the font that has family family and style style is smoothly scalable; otherwise returns false
.
If this function returns true
, it's safe to scale this font to any size, and the result will always look attractive.
Definition at line 1578 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), i, QString::isEmpty(), j, QtFontFoundry::name, parseFontName(), QtFontStyle::smoothScalable, QtFontFoundry::styles, and styleStringHelper().
Referenced by QFontFamilyDelegate::paint(), QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), QFontComboBoxPrivate::updateModel(), and QFontDialogPrivate::updateStyles().
Returns true
if the font that has family family and style style is italic; otherwise returns false
.
Definition at line 1812 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontStyle::Key::style, QtFontFoundry::style(), QFont::StyleItalic, QtFontStyle::styleName, and QtFontFoundry::styles.
|
static |
Returns a list of the point sizes available for the font that has family family and style styleName.
The list may be empty.
Definition at line 1644 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontStyle::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontFoundry::name, parseFontName(), QtFontStyle::pixelSizes, QGuiApplicationPrivate::platformIntegration(), qRound(), qt_defaultDpiY(), SMOOTH_SCALABLE, QtFontStyle::smoothScalable, QtFontFoundry::style(), and QtFontStyle::styleName.
Referenced by QFontDialogPrivate::updateSizes().
|
static |
Removes all application-local fonts previously added using addApplicationFont() and addApplicationFontFromData().
Returns true
if unloading of the fonts succeeded; otherwise returns false
.
Definition at line 2350 of file qfontdatabase.cpp.
References db, and QFontDatabasePrivate::instance().
Referenced by QGuiApplication::~QGuiApplication().
|
static |
Removes familyName from the list of application-defined fallback fonts for script, provided that it has previously been added with \l{addApplicationFallbackFontFamily()}.
Returns true if the family name was in the list and false if it was not.
Definition at line 2419 of file qfontdatabase.cpp.
References db, QFontCache::instance(), QFontDatabasePrivate::instance(), QSet< T >::isEmpty(), and it.
|
static |
Removes the previously loaded application font identified by id. Returns true
if unloading of the font succeeded; otherwise returns false
.
Definition at line 2324 of file qfontdatabase.cpp.
References db, and QFontDatabasePrivate::instance().
|
static |
Sets the list of application-defined fallback fonts for script to familyNames.
When Qt encounters a character in script which is not supported by the current font, it will check the families in familyNames, in order from first to last, until it finds a match. See \l{addApplicationFallbackFontFamily()} for more details.
This function overwrites the current list of application-defined fallback fonts for script.
Definition at line 2451 of file qfontdatabase.cpp.
References db, QFontCache::instance(), QFontDatabasePrivate::instance(), and qCWarning.
|
static |
Returns the point sizes of a font that has family family and style styleName that will look attractive.
The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to pointSizes().
Definition at line 1743 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontStyle::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontFoundry::name, parseFontName(), QtFontStyle::pixelSizes, QGuiApplicationPrivate::platformIntegration(), qRound(), qt_defaultDpiY(), SMOOTH_SCALABLE, QtFontStyle::smoothScalable, standardSizes(), QtFontFoundry::style(), and QtFontStyle::styleName.
Referenced by qfontdatabase_snippets::wrapper().
|
static |
Returns a list of standard font sizes.
Definition at line 1800 of file qfontdatabase.cpp.
References QGuiApplicationPrivate::platformIntegration().
Referenced by compareListToArray(), compareListToInitializerList(), and smoothSizes().
|
static |
Returns a list of the styles available for the font family family.
Some example styles: "Light", "Light Italic", "Bold", "Oblique", "Demi". The list may be empty.
Definition at line 1473 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), i, QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontStyle::styleName, QtFontFoundry::styles, and styleStringHelper().
Referenced by QFontDialogPrivate::updateStyles(), and qfontdatabase_snippets::wrapper().
Returns a string that describes the style of the font.
For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.
Definition at line 1139 of file qfontdatabase.cpp.
References font, QString::isEmpty(), QFont::style(), QFont::styleName(), styleStringHelper(), and QFont::weight().
Referenced by QQuickFontDialogImplAttached::selectFontInListViews(), and QFontDialog::setCurrentFont().
Returns a string that describes the style of the fontInfo.
For example, "Bold Italic", "Bold", "Italic" or "Normal". An empty string may be returned.
Definition at line 1150 of file qfontdatabase.cpp.
References QString::isEmpty(), QFontInfo::style(), QFontInfo::styleName(), styleStringHelper(), and QFontInfo::weight().
|
static |
Returns the most adequate font for a given type case for proper integration with the system's look and feel.
Definition at line 2285 of file qfontdatabase.cpp.
References QPlatformTheme::FixedFont, font, QPlatformTheme::MiniFont, QGuiApplicationPrivate::platformIntegration(), QGuiApplicationPrivate::platformTheme(), QPlatformTheme::SystemFont, and QPlatformTheme::TitleBarFont.
Referenced by standardDeclarationForNode().
Returns the weight of the font that has family family and style style.
If there is no such family and style combination, returns -1.
Definition at line 1879 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontFoundry::style(), QtFontStyle::styleName, QtFontFoundry::styles, and QtFontStyle::Key::weight.
|
static |
Returns the names the writingSystem (e.g.
for displaying to the user in a dialog).
Definition at line 1951 of file qfontdatabase.cpp.
References Q_ASSERT_X, QT_TRANSLATE_NOOP, and QCoreApplication::translate().
Referenced by QFontDialogPrivate::init(), and QQuickFontDialogImplAttached::setWritingSystemComboBox().
|
static |
Returns a sorted list of the available writing systems.
This is list generated from information about all installed fonts on the system.
Definition at line 1360 of file qfontdatabase.cpp.
References QtFontFamily::count, d, QFontDatabasePrivate::ensureFontDatabase(), QtFontFamily::ensurePopulated(), i, list, QList< T >::push_back(), qPopulationCount(), QList< T >::reserve(), QtFontFamily::Supported, QMutexLocker< Mutex >::unlock(), and QtFontFamily::writingSystems.
Referenced by QWindowsFontDatabaseBase::extraTryFontsForFamily(), and writingSystemForFont().
|
static |
Returns a sorted list of the writing systems supported by a given font family.
Definition at line 1400 of file qfontdatabase.cpp.
References QList< T >::append(), d, QFontDatabasePrivate::ensureFontDatabase(), list, parseFontName(), and QtFontFamily::Supported.
|
static |
Returns a string with sample characters from writingSystem.
Definition at line 2067 of file qfontdatabase.cpp.
References Any, Arabic, Armenian, Bengali, Cyrillic, Devanagari, Georgian, Greek, Gujarati, Gurmukhi, Hebrew, Japanese, Kannada, Khmer, Korean, Lao, Latin, Malayalam, Myanmar, Nko, Ogham, Oriya, Runic, SimplifiedChinese, Sinhala, Symbol, Syriac, Tamil, Telugu, Thaana, Thai, Tibetan, toString(), TraditionalChinese, and Vietnamese.
Referenced by QFontFamilyDelegate::paint(), QQuickFontDialogImplAttached::setSampleEdit(), and QFontDialogPrivate::writingSystemHighlighted().