![]() |
Qt 6.x
The Qt SDK
|
\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 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 |
\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 2219 of file qfontdatabase.cpp.
References QFontDatabasePrivate::addAppFont(), 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 2247 of file qfontdatabase.cpp.
References QFontDatabasePrivate::addAppFont(), and QFontDatabasePrivate::instance().
|
static |
Returns a list of font families for the given application font identified by id.
Definition at line 2261 of file qfontdatabase.cpp.
References d, QFontDatabasePrivate::instance(), properties, and ret.
Returns true
if the font that has family family and style style is bold; otherwise returns false
.
Definition at line 1843 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 1431 of file qfontdatabase.cpp.
References d, QFontDatabasePrivate::ensureFontDatabase(), i, QString::isEmpty(), j, QtFontFoundry::name, str, and QtFontFamily::Supported.
Referenced by QWasmTheme::QWasmTheme(), QFontComboBoxPrivate::_q_updateModel(), QWindowsFontDatabaseBase::extraTryFontsForFamily(), QQuickGuiProvider::fontFamilies(), QWindowsFontDatabaseFT::populateFamilyAliases(), QWindowsFontDatabase::populateFamilyAliases(), QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), 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 1700 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 QFontDialogPrivate::_q_updateSample(), and qfontForCocoaFont().
|
static |
Definition at line 1907 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), d, QFontDatabasePrivate::ensureFontDatabase(), i, parseFontName(), and QFontDatabasePrivate::resolveFontFamilyAlias().
Referenced by QWindowsFontDatabaseBase::extraTryFontsForFamily(), 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 1537 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 1512 of file qfontdatabase.cpp.
References d, QFontDatabasePrivate::ensureFontDatabase(), parseFontName(), and Q_UNUSED.
Referenced by QWasmTheme::QWasmTheme(), QFontComboBoxPrivate::_q_updateModel(), QFontDialogPrivate::updateFamilies(), and QQuickFontDialogImplAttached::updateFamilies().
|
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 1940 of file qfontdatabase.cpp.
References QPlatformIntegration::fontDatabase(), QPlatformFontDatabase::isPrivateFontFamily(), and QGuiApplicationPrivate::platformIntegration().
Referenced by QFontComboBoxPrivate::_q_updateModel(), QFontDialogPrivate::updateFamilies(), and QQuickFontDialogImplAttached::updateFamilies().
Returns true
if the font that has family family and style style is scalable; otherwise returns false
.
Definition at line 1627 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 1577 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 QFontComboBoxPrivate::_q_updateModel(), QFontFamilyDelegate::paint(), QFontDialogPrivate::updateFamilies(), QQuickFontDialogImplAttached::updateFamilies(), and QFontDialogPrivate::updateStyles().
Returns true
if the font that has family family and style style is italic; otherwise returns false
.
Definition at line 1811 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 1643 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontStyle::count, QtFontFamily::count, d, QFontDatabasePrivate::ensureFontDatabase(), QtFontFamily::foundries, 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 2349 of file qfontdatabase.cpp.
References db, and QFontDatabasePrivate::instance().
Referenced by QGuiApplication::~QGuiApplication().
|
static |
Removes the previously loaded application font identified by id. Returns true
if unloading of the font succeeded; otherwise returns false
.
Definition at line 2323 of file qfontdatabase.cpp.
References db, and QFontDatabasePrivate::instance().
|
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 1742 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontStyle::count, QtFontFamily::count, d, QFontDatabasePrivate::ensureFontDatabase(), QtFontFamily::foundries, 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 1799 of file qfontdatabase.cpp.
References QPlatformIntegration::fontDatabase(), QGuiApplicationPrivate::platformIntegration(), and QPlatformFontDatabase::standardSizes().
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 1472 of file qfontdatabase.cpp.
References Qt::CaseInsensitive, QString::compare(), QtFontFoundry::count, d, QFontDatabasePrivate::ensureFontDatabase(), i, QString::isEmpty(), j, QtFontStyle::key, QtFontFoundry::name, parseFontName(), QtFontStyle::Key::stretch, QtFontStyle::Key::style, QtFontFoundry::style(), QtFontStyle::styleName, QtFontFoundry::styles, styleStringHelper(), and QtFontStyle::Key::weight.
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 1138 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 1149 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 2284 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 1878 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 1950 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 1359 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 1399 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 2066 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 QFontDialogPrivate::_q_writingSystemHighlighted(), QFontFamilyDelegate::paint(), and QQuickFontDialogImplAttached::setSampleEdit().