QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
QgsFontUtils Class Reference

Contains utility functions for working with fonts. More...

#include <qgsfontutils.h>

Static Public Member Functions

static void addRecentFontFamily (const QString &family)
 Adds a font family to the list of recently used font families.
 
static QString asCSS (const QFont &font, double pointToPixelMultiplier=1.0)
 Returns a CSS string representing the specified font as closely as possible.
 
static QFont createFont (const QString &family, int pointSize=-1, int weight=-1, bool italic=false)
 Creates a font with the specified family.
 
static bool fontFamilyHasStyle (const QString &family, const QString &style)
 Check whether font family on system has specific style.
 
static bool fontFamilyMatchOnSystem (const QString &family, QString *chosen=nullptr, bool *match=nullptr)
 Check whether font family is on system.
 
static bool fontFamilyOnSystem (const QString &family)
 Check whether font family is on system in a quick manner, which does not compare [foundry].
 
static bool fontMatchOnSystem (const QFont &f)
 Check whether exact font is on system.
 
static QFont fromMimeData (const QMimeData *data, bool *ok=nullptr)
 Attempts to parse the provided mime data as a QFont.
 
static QFont getStandardTestFont (const QString &style="Roman", int pointsize=12)
 Gets standard test font with specific style.
 
static bool loadStandardTestFonts (const QStringList &loadstyles)
 Loads standard test fonts from filesystem or qrc resource.
 
static QStringList recentFontFamilies ()
 Returns a list of recently used font families.
 
static QString resolveFontStyleName (const QFont &font)
 Attempts to resolve the style name corresponding to the specified font object.
 
static void setFontFamily (QFont &font, const QString &family)
 Sets the family for a font object.
 
static bool setFromXmlChildNode (QFont &font, const QDomElement &element, const QString &childNode)
 Sets the properties of a font to match the properties stored in an XML child node.
 
static bool setFromXmlElement (QFont &font, const QDomElement &element)
 Sets the properties of a font to match the properties stored in an XML element.
 
static QString standardTestFontFamily ()
 Gets standard test font family.
 
static QMimeData * toMimeData (const QFont &font)
 Returns new mime data representing the specified font settings.
 
static QDomElement toXmlElement (const QFont &font, QDomDocument &document, const QString &elementName)
 Returns a DOM element containing the properties of the font.
 
static QString translateNamedStyle (const QString &namedStyle)
 Returns the localized named style of a font, if such a translation is available.
 
static QString untranslateNamedStyle (const QString &namedStyle)
 Returns the english named style of a font, if possible.
 
static bool updateFontViaStyle (QFont &f, const QString &fontstyle, bool fallback=false)
 Updates font with named style and retain all font properties.
 

Detailed Description

Contains utility functions for working with fonts.

Definition at line 33 of file qgsfontutils.h.

Member Function Documentation

◆ addRecentFontFamily()

void QgsFontUtils::addRecentFontFamily ( const QString &  family)
static

Adds a font family to the list of recently used font families.

See also
recentFontFamilies()

Definition at line 578 of file qgsfontutils.cpp.

◆ asCSS()

QString QgsFontUtils::asCSS ( const QFont &  font,
double  pointToPixelMultiplier = 1.0 
)
static

Returns a CSS string representing the specified font as closely as possible.

Parameters
fontQFont to convert
pointToPixelMultiplierscaling factor to apply to convert point sizes to pixel font sizes. The CSS returned by this function will always use pixels for font sizes, so this parameter should be set to a suitable value to convert point sizes to pixels (e.g., taking into account destination DPI)
Returns
partial CSS string, e.g., "font-family: Comic Sans; font-size: 12px;"

Definition at line 518 of file qgsfontutils.cpp.

◆ createFont()

QFont QgsFontUtils::createFont ( const QString &  family,
int  pointSize = -1,
int  weight = -1,
bool  italic = false 
)
static

Creates a font with the specified family.

Applies some workarounds for specific font quirks.

Since
QGIS 3.34

Definition at line 618 of file qgsfontutils.cpp.

◆ fontFamilyHasStyle()

bool QgsFontUtils::fontFamilyHasStyle ( const QString &  family,
const QString &  style 
)
static

Check whether font family on system has specific style.

Parameters
familyThe family to test
styleThe style to test for
Returns
Whether family has style

Definition at line 45 of file qgsfontutils.cpp.

◆ fontFamilyMatchOnSystem()

bool QgsFontUtils::fontFamilyMatchOnSystem ( const QString &  family,
QString *  chosen = nullptr,
bool *  match = nullptr 
)
static

Check whether font family is on system.

Parameters
familyThe family to test
chosenThe actual family (possibly from different foundry) returned by system
matchWhether the family [foundry] returned by system is a match
Returns
Whether family was found on system

Definition at line 100 of file qgsfontutils.cpp.

◆ fontFamilyOnSystem()

bool QgsFontUtils::fontFamilyOnSystem ( const QString &  family)
static

Check whether font family is on system in a quick manner, which does not compare [foundry].

Parameters
familyThe family to test
Returns
Whether family was found on system
Note
This is good for use in loops of large lists, e.g. registering many features for labeling

Definition at line 38 of file qgsfontutils.cpp.

◆ fontMatchOnSystem()

bool QgsFontUtils::fontMatchOnSystem ( const QFont &  f)
static

Check whether exact font is on system.

Parameters
fThe font to test for match

Definition at line 32 of file qgsfontutils.cpp.

◆ fromMimeData()

QFont QgsFontUtils::fromMimeData ( const QMimeData *  data,
bool *  ok = nullptr 
)
static

Attempts to parse the provided mime data as a QFont.

If data can be parsed as a QFont, ok will be set to true.

See also
toMimeData()

Definition at line 436 of file qgsfontutils.cpp.

◆ getStandardTestFont()

QFont QgsFontUtils::getStandardTestFont ( const QString &  style = "Roman",
int  pointsize = 12 
)
static

Gets standard test font with specific style.

Parameters
styleStyle to load, e.g. Roman, Oblique, Bold, Bold Oblique
pointsizeFont point size to set
Returns
QFont

Definition at line 319 of file qgsfontutils.cpp.

◆ loadStandardTestFonts()

bool QgsFontUtils::loadStandardTestFonts ( const QStringList &  loadstyles)
static

Loads standard test fonts from filesystem or qrc resource.

Parameters
loadstylesList of styles to load, e.g. All, Roman, Oblique, Bold, Bold Oblique
Returns
Whether any font was loaded
Note
Done by default on debug app/server startup to ensure fonts available for unit tests (Roman and Bold)

Definition at line 256 of file qgsfontutils.cpp.

◆ recentFontFamilies()

QStringList QgsFontUtils::recentFontFamilies ( )
static

Returns a list of recently used font families.

See also
addRecentFontFamily()

Definition at line 600 of file qgsfontutils.cpp.

◆ resolveFontStyleName()

QString QgsFontUtils::resolveFontStyleName ( const QFont &  font)
static

Attempts to resolve the style name corresponding to the specified font object.

If a font has been modified by calling QFont::setBold or QFont::setItalic, then its QFont::styleName may return an empty string. This method attempts to determine the correct style name which corresponds to the font's bold and italic settings.

Returns an empty string if a matching style name could not be found.

Since
QGIS 3.26

Definition at line 69 of file qgsfontutils.cpp.

◆ setFontFamily()

void QgsFontUtils::setFontFamily ( QFont &  font,
const QString &  family 
)
static

Sets the family for a font object.

Applies some workarounds for specific font quirks.

Since
QGIS 3.34

Definition at line 606 of file qgsfontutils.cpp.

◆ setFromXmlChildNode()

bool QgsFontUtils::setFromXmlChildNode ( QFont &  font,
const QDomElement &  element,
const QString &  childNode 
)
static

Sets the properties of a font to match the properties stored in an XML child node.

Calling this will overwrite the current properties of the font.

Parameters
fontfont to update
elementDOM element
childNodename of child node
Returns
true if child node exists and properties were successfully read from node
See also
setFromXmlElement
toXmlElement

Definition at line 405 of file qgsfontutils.cpp.

◆ setFromXmlElement()

bool QgsFontUtils::setFromXmlElement ( QFont &  font,
const QDomElement &  element 
)
static

Sets the properties of a font to match the properties stored in an XML element.

Calling this will overwrite the current properties of the font.

Parameters
fontfont to update
elementDOM element
Returns
true if properties were successfully read from element
See also
toXmlElement
setFromXmlChildNode

Definition at line 371 of file qgsfontutils.cpp.

◆ standardTestFontFamily()

QString QgsFontUtils::standardTestFontFamily ( )
static

Gets standard test font family.

Definition at line 251 of file qgsfontutils.cpp.

◆ toMimeData()

QMimeData * QgsFontUtils::toMimeData ( const QFont &  font)
static

Returns new mime data representing the specified font settings.

Caller takes responsibility for deleting the returned object.

See also
fromMimeData()

Definition at line 424 of file qgsfontutils.cpp.

◆ toXmlElement()

QDomElement QgsFontUtils::toXmlElement ( const QFont &  font,
QDomDocument &  document,
const QString &  elementName 
)
static

Returns a DOM element containing the properties of the font.

Parameters
fontfont
documentDOM document
elementNamename for DOM element
Returns
DOM element containing font settings
See also
setFromXmlElement

Definition at line 359 of file qgsfontutils.cpp.

◆ translateNamedStyle()

QString QgsFontUtils::translateNamedStyle ( const QString &  namedStyle)
static

Returns the localized named style of a font, if such a translation is available.

Parameters
namedStylea named style, i.e. "Bold", "Italic", etc
Returns
The localized named style
See also
untranslateNamedStyle

Definition at line 489 of file qgsfontutils.cpp.

◆ untranslateNamedStyle()

QString QgsFontUtils::untranslateNamedStyle ( const QString &  namedStyle)
static

Returns the english named style of a font, if possible.

Parameters
namedStylea localized named style, i.e. "Fett", "Kursiv", etc
Returns
The english named style
See also
translateNamedStyle

Definition at line 499 of file qgsfontutils.cpp.

◆ updateFontViaStyle()

bool QgsFontUtils::updateFontViaStyle ( QFont &  f,
const QString &  fontstyle,
bool  fallback = false 
)
static

Updates font with named style and retain all font properties.

Parameters
fThe font to update
fontstyleThe style to try and switch the font to
fallbackIf no matching fontstyle found for font, assign most similar or first style found to font
Returns
Whether the font was updated (also returns true if the requested style matches font's current style)
Note
This is a more featured replacement for a Qt 4.8+ function: void QFont::setStyleName ( const QString & styleName )

Definition at line 153 of file qgsfontutils.cpp.


The documentation for this class was generated from the following files: