QFontDatabase

Inheritance diagram of QFontDatabase

Synopsis

Functions

Static functions

Detailed Description

The PySide.QtGui.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 PySide.QtGui.QFontDatabase.families() and for the PySide.QtGui.QFontDatabase.pointSizes() and PySide.QtGui.QFontDatabase.styles() that are available for each family. An alternative to PySide.QtGui.QFontDatabase.pointSizes() is PySide.QtGui.QFontDatabase.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 PySide.QtGui.QFontDatabase.families() .

The PySide.QtGui.QFontDatabase.font() function returns a PySide.QtGui.QFont given a family, style and point size.

A family and style combination can be checked to see if it is PySide.QtGui.QFontDatabase.italic() or PySide.QtGui.QFontDatabase.bold() , and to retrieve its PySide.QtGui.QFontDatabase.weight() . Similarly we can call PySide.QtGui.QFontDatabase.isBitmapScalable() , PySide.QtGui.QFontDatabase.isSmoothlyScalable() , PySide.QtGui.QFontDatabase.isScalable() and PySide.QtGui.QFontDatabase.isFixedPitch() .

Use the PySide.QtGui.QFontDatabase.styleString() to obtain a text version of a style.

The PySide.QtGui.QFontDatabase class also supports some static functions, for example, PySide.QtGui.QFontDatabase.standardSizes() . You can retrieve the description of a writing system using PySide.QtGui.QFontDatabase.writingSystemName() , and a sample of characters in a writing system with PySide.QtGui.QFontDatabase.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.

class PySide.QtGui.QFontDatabase
class PySide.QtGui.QFontDatabase(QFontDatabase)
Parameters:QFontDatabasePySide.QtGui.QFontDatabase

Creates a font database object.

PySide.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  
static PySide.QtGui.QFontDatabase.addApplicationFont(fileName)
Parameters:fileName – unicode
Return type:PySide.QtCore.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 PySide.QtGui.QFontDatabase.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.

Note

On Symbian, the font family names get truncated to a length of 20 characters.

static PySide.QtGui.QFontDatabase.addApplicationFontFromData(fontData)
Parameters:fontDataPySide.QtCore.QByteArray
Return type:PySide.QtCore.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 PySide.QtGui.QFontDatabase.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.

Note

On Symbian, the font family names get truncated to a length of 20 characters.

static PySide.QtGui.QFontDatabase.applicationFontFamilies(id)
Parameters:idPySide.QtCore.int
Return type:list of strings

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

PySide.QtGui.QFontDatabase.bold(family, style)
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.bool

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

static PySide.QtGui.QFontDatabase.createDatabase()
PySide.QtGui.QFontDatabase.families([writingSystem=Any])
Parameters:writingSystemPySide.QtGui.QFontDatabase.WritingSystem
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”.

PySide.QtGui.QFontDatabase.font(family, style, pointSize)
Parameters:
  • family – unicode
  • style – unicode
  • pointSizePySide.QtCore.int
Return type:

PySide.QtGui.QFont

Returns a PySide.QtGui.QFont object that has family family , style style and point size pointSize . If no matching font could be created, a PySide.QtGui.QFont object that uses the application’s default font is returned.

PySide.QtGui.QFontDatabase.isBitmapScalable(family[, style=""])
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.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 PySide.QtGui.QFontDatabase.smoothSizes() .

PySide.QtGui.QFontDatabase.isFixedPitch(family[, style=""])
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.bool

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

PySide.QtGui.QFontDatabase.isScalable(family[, style=""])
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.bool

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

PySide.QtGui.QFontDatabase.isSmoothlyScalable(family[, style=""])
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.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.

PySide.QtGui.QFontDatabase.italic(family, style)
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.bool

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

static PySide.QtGui.QFontDatabase.parseFontName(name, foundry, family)
Parameters:
  • name – unicode
  • foundry – unicode
  • family – unicode
PySide.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 style . The list may be empty.

static PySide.QtGui.QFontDatabase.removeAllApplicationFonts()
Return type:PySide.QtCore.bool

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

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

static PySide.QtGui.QFontDatabase.removeApplicationFont(id)
Parameters:idPySide.QtCore.int
Return type:PySide.QtCore.bool

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

PySide.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 style that will look attractive. The list may be empty. For non-scalable fonts and bitmap scalable fonts, this function is equivalent to PySide.QtGui.QFontDatabase.pointSizes() .

static PySide.QtGui.QFontDatabase.standardSizes()
Return type:

Returns a list of standard font sizes.

PySide.QtGui.QFontDatabase.styleString(font)
Parameters:fontPySide.QtGui.QFont
Return type:unicode

Returns a string that describes the style of the font . For example, “Bold Italic”, “Bold”, “Italic” or “Normal”. An empty string may be returned.

PySide.QtGui.QFontDatabase.styleString(fontInfo)
Parameters:fontInfoPySide.QtGui.QFontInfo
Return type:unicode

Returns a string that describes the style of the fontInfo . For example, “Bold Italic”, “Bold”, “Italic” or “Normal”. An empty string may be returned.

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

static PySide.QtGui.QFontDatabase.supportsThreadedFontRendering()
Return type:PySide.QtCore.bool

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

See also

Painting In Threads

PySide.QtGui.QFontDatabase.weight(family, style)
Parameters:
  • family – unicode
  • style – unicode
Return type:

PySide.QtCore.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.

static PySide.QtGui.QFontDatabase.writingSystemName(writingSystem)
Parameters:writingSystemPySide.QtGui.QFontDatabase.WritingSystem
Return type:unicode

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

static PySide.QtGui.QFontDatabase.writingSystemSample(writingSystem)
Parameters:writingSystemPySide.QtGui.QFontDatabase.WritingSystem
Return type:unicode

Returns a string with sample characters from writingSystem .

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

PySide.QtGui.QFontDatabase.writingSystems(family)
Parameters:family – unicode
Return type:

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