QFontDatabase

The QFontDatabase class provides information about the fonts available in the underlying window system. More

Inheritance diagram of PySide2.QtGui.QFontDatabase

Synopsis

Functions

Static functions

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 also supports some static 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:

database = QFontDatabase()
fontTree = QTreeWidget()
fontTree.setColumnCount(2)
fontTree.setHeaderLabels(QStringList() << "Font" << "Smooth Sizes")

for family in database.families():
    familyItem = QTreeWidgetItem(fontTree)
    familyItem.setText(0, family)

    for style in database.styles(family):
        styleItem = QTreeWidgetItem(familyItem)
        styleItem.setText(0, style)

        sizes = 0
        for points in database.smoothSizes(family, style):
            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

QFont QFontInfo QFontMetrics Character Map Example

class QFontDatabase

QFontDatabase(QFontDatabase)

param QFontDatabase

QFontDatabase

Creates a font database object.

PySide2.QtGui.QFontDatabase.WritingSystem

Constant

Description

QFontDatabase.Any

QFontDatabase.Latin

QFontDatabase.Greek

QFontDatabase.Cyrillic

QFontDatabase.Armenian

QFontDatabase.Hebrew

QFontDatabase.Arabic

QFontDatabase.Syriac

QFontDatabase.Thaana

QFontDatabase.Devanagari

QFontDatabase.Bengali

QFontDatabase.Gurmukhi

QFontDatabase.Gujarati

QFontDatabase.Oriya

QFontDatabase.Tamil

QFontDatabase.Telugu

QFontDatabase.Kannada

QFontDatabase.Malayalam

QFontDatabase.Sinhala

QFontDatabase.Thai

QFontDatabase.Lao

QFontDatabase.Tibetan

QFontDatabase.Myanmar

QFontDatabase.Georgian

QFontDatabase.Khmer

QFontDatabase.SimplifiedChinese

QFontDatabase.TraditionalChinese

QFontDatabase.Japanese

QFontDatabase.Korean

QFontDatabase.Vietnamese

QFontDatabase.Symbol

QFontDatabase.Other

(the same as Symbol)

QFontDatabase.Ogham

QFontDatabase.Runic

QFontDatabase.Nko

PySide2.QtGui.QFontDatabase.SystemFont

Constant

Description

QFontDatabase.GeneralFont

The default system font.

QFontDatabase.FixedFont

The fixed font that the system recommends.

QFontDatabase.TitleFont

The system standard font for titles.

QFontDatabase.SmallestReadableFont

The smallest readable system font.

static PySide2.QtGui.QFontDatabase.addApplicationFont(fileName)
Parameters

fileName – unicode

Return type

int

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.

Note

Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

static PySide2.QtGui.QFontDatabase.addApplicationFontFromData(fontData)
Parameters

fontDataQByteArray

Return type

int

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 and TrueType font collections are supported.

Note

Adding application fonts on Unix/X11 platforms without fontconfig is currently not supported.

static PySide2.QtGui.QFontDatabase.applicationFontFamilies(id)
Parameters

idint

Return type

list of strings

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

PySide2.QtGui.QFontDatabase.bold(family, style)
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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

See also

italic() weight()

PySide2.QtGui.QFontDatabase.families([writingSystem=Any])
Parameters

writingSystemWritingSystem

Return type

list of strings

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

writingSystems()

PySide2.QtGui.QFontDatabase.font(family, style, pointSize)
Parameters
  • family – unicode

  • style – unicode

  • pointSizeint

Return type

QFont

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.

PySide2.QtGui.QFontDatabase.hasFamily(family)
Parameters

family – unicode

Return type

bool

PySide2.QtGui.QFontDatabase.isBitmapScalable(family[, style=""])
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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() .

PySide2.QtGui.QFontDatabase.isFixedPitch(family[, style=""])
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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

PySide2.QtGui.QFontDatabase.isPrivateFamily(family)
Parameters

family – unicode

Return type

bool

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, 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

families()

PySide2.QtGui.QFontDatabase.isScalable(family[, style=""])
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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

PySide2.QtGui.QFontDatabase.isSmoothlyScalable(family[, style=""])
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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.

PySide2.QtGui.QFontDatabase.italic(family, style)
Parameters
  • family – unicode

  • style – unicode

Return type

bool

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

See also

weight() bold()

PySide2.QtGui.QFontDatabase.pointSizes(family[, style=""])
Parameters
  • family – unicode

  • style – unicode

Return type

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

static PySide2.QtGui.QFontDatabase.removeAllApplicationFonts()
Return type

bool

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

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

static PySide2.QtGui.QFontDatabase.removeApplicationFont(id)
Parameters

idint

Return type

bool

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

PySide2.QtGui.QFontDatabase.smoothSizes(family, style)
Parameters
  • family – unicode

  • style – unicode

Return type

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() .

static PySide2.QtGui.QFontDatabase.standardSizes()
Return type

Returns a list of standard font sizes.

PySide2.QtGui.QFontDatabase.styleString(font)
Parameters

fontQFont

Return type

unicode

PySide2.QtGui.QFontDatabase.styleString(fontInfo)
Parameters

fontInfoQFontInfo

Return type

unicode

PySide2.QtGui.QFontDatabase.styles(family)
Parameters

family – unicode

Return type

list of strings

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.

See also

families()

static PySide2.QtGui.QFontDatabase.supportsThreadedFontRendering()
Return type

bool

Note

This function is deprecated.

Returns true if font rendering is supported outside the GUI thread, false otherwise. In other words, a return value of false means that all drawText() calls outside the GUI thread will not produce readable output.

As of 5.0, always returns true .

See also

Painting In Threads

static PySide2.QtGui.QFontDatabase.systemFont(type)
Parameters

typeSystemFont

Return type

QFont

Returns the most adequate font for a given type case for proper integration with the system’s look and feel.

See also

font()

PySide2.QtGui.QFontDatabase.weight(family, style)
Parameters
  • family – unicode

  • style – unicode

Return type

int

Returns the weight of the font that has family family and style style . If there is no such family and style combination, returns -1.

See also

italic() bold()

static PySide2.QtGui.QFontDatabase.writingSystemName(writingSystem)
Parameters

writingSystemWritingSystem

Return type

unicode

Returns the names the writingSystem (e.g. for displaying to the user in a dialog).

static PySide2.QtGui.QFontDatabase.writingSystemSample(writingSystem)
Parameters

writingSystemWritingSystem

Return type

unicode

Returns a string with sample characters from writingSystem .

PySide2.QtGui.QFontDatabase.writingSystems()
Return type

Returns a sorted list of the available writing systems. This is list generated from information about all installed fonts on the system.

See also

families()

PySide2.QtGui.QFontDatabase.writingSystems(family)
Parameters

family – unicode

Return type

Returns a sorted list of the writing systems supported by a given font family .

See also

families()