QFontDatabase Class

  • Header: QFontDatabase

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Gui)

    target_link_libraries(mytarget PRIVATE Qt6::Gui)

  • qmake: QT += gui

  • Group: QFontDatabase is part of appearance

Detailed Description

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:

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

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.

See Also

Member Type Documentation

 

enum QFontDatabase::SystemFont

Constant

Value

Description

QFontDatabase::GeneralFont

0

The default system font.

QFontDatabase::FixedFont

1

The fixed font that the system recommends.

QFontDatabase::TitleFont

2

The system standard font for titles.

QFontDatabase::SmallestReadableFont

3

The smallest readable system font.

enum QFontDatabase::WritingSystem

Constant

Value

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

(the same as Symbol)

QFontDatabase::Ogham

31

 

QFontDatabase::Runic

32

 

QFontDatabase::Nko

33

 

Member Function Documentation

 

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

Loads the font from the file specified by 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.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.

See Also

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

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.

The function returns -1 if the font could not be loaded.

Currently only TrueType fonts, TrueType font collections, and OpenType fonts are supported.

See Also

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

Returns a list of font families for the given application font identified by id.

See Also

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

Returns true if the font that has family family and style style is bold; otherwise returns false.

See Also

See also italic(), weight()

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

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".

See Also

See also writingSystems()

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

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.

[static] bool QFontDatabase::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. 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().

See Also

[static] bool QFontDatabase::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 QFontDatabase::isPrivateFamily(const QString &family)

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.

See Also

See also families()

[static] bool QFontDatabase::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.

See Also

[static] bool QFontDatabase::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. If this function returns true, it's safe to scale this font to any size, and the result will always look attractive.

See Also

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

Returns true if the font that has family family and style style is italic; otherwise returns false.

See Also

See also weight(), bold()

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

Returns a list of the point sizes available for the font that has family family and style styleName. The list may be empty.

See Also

See also smoothSizes(), standardSizes()

[static] bool QFontDatabase::removeAllApplicationFonts()

Removes all application-local fonts previously added using addApplicationFont() and addApplicationFontFromData().

Returns true if unloading of the fonts succeeded; otherwise returns false.

See Also

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

Removes the previously loaded application font identified by id. Returns true if unloading of the font succeeded; otherwise returns false.

See Also

See also