QTextCharFormat Class

The QTextCharFormat class provides formatting information for characters in a QTextDocument. More...

Header: #include <QTextCharFormat>
qmake: QT += gui
Inherits: QTextFormat
Inherited By:

QTextImageFormat and QTextTableCellFormat

Note: All functions in this class are reentrant.

Public Types

enum FontPropertiesInheritanceBehavior { FontPropertiesSpecifiedOnly, FontPropertiesAll }
enum UnderlineStyle { NoUnderline, SingleUnderline, DashUnderline, DotLine, ..., SpellCheckUnderline }
enum VerticalAlignment { AlignNormal, AlignSuperScript, AlignSubScript, AlignMiddle, ..., AlignBaseline }

Public Functions

QTextCharFormat()
QString anchorHref() const
QStringList anchorNames() const
QFont font() const
QFont::Capitalization fontCapitalization() const
QString fontFamily() const
bool fontFixedPitch() const
QFont::HintingPreference fontHintingPreference() const
bool fontItalic() const
bool fontKerning() const
qreal fontLetterSpacing() const
QFont::SpacingType fontLetterSpacingType() const
bool fontOverline() const
qreal fontPointSize() const
int fontStretch() const
bool fontStrikeOut() const
QFont::StyleHint fontStyleHint() const
QFont::StyleStrategy fontStyleStrategy() const
bool fontUnderline() const
int fontWeight() const
qreal fontWordSpacing() const
bool isAnchor() const
bool isValid() const
void setAnchor(bool anchor)
void setAnchorHref(const QString &value)
void setAnchorNames(const QStringList &names)
void setFont(const QFont &font, FontPropertiesInheritanceBehavior behavior)
void setFont(const QFont &font)
void setFontCapitalization(QFont::Capitalization capitalization)
void setFontFamily(const QString &family)
void setFontFixedPitch(bool fixedPitch)
void setFontHintingPreference(QFont::HintingPreference hintingPreference)
void setFontItalic(bool italic)
void setFontKerning(bool enable)
void setFontLetterSpacing(qreal spacing)
void setFontLetterSpacingType(QFont::SpacingType letterSpacingType)
void setFontOverline(bool overline)
void setFontPointSize(qreal size)
void setFontStretch(int factor)
void setFontStrikeOut(bool strikeOut)
void setFontStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault)
void setFontStyleStrategy(QFont::StyleStrategy strategy)
void setFontUnderline(bool underline)
void setFontWeight(int weight)
void setFontWordSpacing(qreal spacing)
void setTextOutline(const QPen &pen)
void setToolTip(const QString &text)
void setUnderlineColor(const QColor &color)
void setUnderlineStyle(UnderlineStyle style)
void setVerticalAlignment(VerticalAlignment alignment)
QPen textOutline() const
QString toolTip() const
QColor underlineColor() const
UnderlineStyle underlineStyle() const
VerticalAlignment verticalAlignment() const

Detailed Description

The QTextCharFormat class provides formatting information for characters in a QTextDocument.

The character format of text in a document specifies the visual properties of the text, as well as information about its role in a hypertext document.

The font used can be set by supplying a font to the setFont() function, and each aspect of its appearance can be adjusted to give the desired effect. setFontFamily() and setFontPointSize() define the font's family (e.g. Times) and printed size; setFontWeight() and setFontItalic() provide control over the style of the font. setFontUnderline(), setFontOverline(), setFontStrikeOut(), and setFontFixedPitch() provide additional effects for text.

The color is set with setForeground(). If the text is intended to be used as an anchor (for hyperlinks), this can be enabled with setAnchor(). The setAnchorHref() and setAnchorNames() functions are used to specify the information about the hyperlink's destination and the anchor's name.

See also QTextFormat, QTextBlockFormat, QTextTableFormat, and QTextListFormat.

Member Type Documentation

enum QTextCharFormat::FontPropertiesInheritanceBehavior

This enum specifies how the setFont() function should behave with respect to unset font properties.

ConstantValueDescription
QTextCharFormat::FontPropertiesSpecifiedOnly0If a property is not explicitly set, do not change the text format's property value.
QTextCharFormat::FontPropertiesAll1If a property is not explicitly set, override the text format's property with a default value.

This enum was introduced or modified in Qt 5.3.

See also setFont().

enum QTextCharFormat::UnderlineStyle

This enum describes the different ways drawing underlined text.

ConstantValueDescription
QTextCharFormat::NoUnderline0Text is draw without any underlining decoration.
QTextCharFormat::SingleUnderline1A line is drawn using Qt::SolidLine.
QTextCharFormat::DashUnderline2Dashes are drawn using Qt::DashLine.
QTextCharFormat::DotLine3Dots are drawn using Qt::DotLine;
QTextCharFormat::DashDotLine4Dashs and dots are drawn using Qt::DashDotLine.
QTextCharFormat::DashDotDotLine5Underlines draw drawn using Qt::DashDotDotLine.
QTextCharFormat::WaveUnderline6The text is underlined using a wave shaped line.
QTextCharFormat::SpellCheckUnderline7The underline is drawn depending on the QStyle::SH_SpellCeckUnderlineStyle style hint of the QApplication style. By default this is mapped to WaveUnderline, on macOS it is mapped to DashDotLine.

See also Qt::PenStyle.

enum QTextCharFormat::VerticalAlignment

This enum describes the ways that adjacent characters can be vertically aligned.

ConstantValueDescription
QTextCharFormat::AlignNormal0Adjacent characters are positioned in the standard way for text in the writing system in use.
QTextCharFormat::AlignSuperScript1Characters are placed above the base line for normal text.
QTextCharFormat::AlignSubScript2Characters are placed below the base line for normal text.
QTextCharFormat::AlignMiddle3The center of the object is vertically aligned with the base line. Currently, this is only implemented for inline objects.
QTextCharFormat::AlignBottom5The bottom edge of the object is vertically aligned with the base line.
QTextCharFormat::AlignTop4The top edge of the object is vertically aligned with the base line.
QTextCharFormat::AlignBaseline6The base lines of the characters are aligned.

Member Function Documentation

QTextCharFormat::QTextCharFormat()

Constructs a new character format object.

QString QTextCharFormat::anchorHref() const

Returns the text format's hypertext link, or an empty string if none has been set.

See also setAnchorHref().

QStringList QTextCharFormat::anchorNames() const

Returns the anchor names associated with this text format, or an empty string list if none has been set. If the anchor names are set, text with this format can be the destination of a hypertext link.

This function was introduced in Qt 4.3.

See also setAnchorNames().

QFont QTextCharFormat::font() const

Returns the font for this character format.

See also setFont().

QFont::Capitalization QTextCharFormat::fontCapitalization() const

Returns the current capitalization type of the font.

This function was introduced in Qt 4.4.

See also setFontCapitalization().

QString QTextCharFormat::fontFamily() const

Returns the text format's font family.

See also setFontFamily() and font().

bool QTextCharFormat::fontFixedPitch() const

Returns true if the text format's font is fixed pitch; otherwise returns false.

See also setFontFixedPitch() and font().

QFont::HintingPreference QTextCharFormat::fontHintingPreference() const

Returns the hinting preference set for this text format.

This function was introduced in Qt 4.8.

See also setFontHintingPreference(), font(), and QFont::hintingPreference().

bool QTextCharFormat::fontItalic() const

Returns true if the text format's font is italic; otherwise returns false.

See also setFontItalic() and font().

bool QTextCharFormat::fontKerning() const

Returns true if the font kerning is enabled.

This function was introduced in Qt 4.5.

See also setFontKerning() and font().

qreal QTextCharFormat::fontLetterSpacing() const

Returns the current letter spacing.

This function was introduced in Qt 4.4.

See also setFontLetterSpacing(), setFontLetterSpacingType(), and fontLetterSpacingType().

QFont::SpacingType QTextCharFormat::fontLetterSpacingType() const

Returns the letter spacing type of this format..

This function was introduced in Qt 5.0.

See also setFontLetterSpacingType(), setFontLetterSpacing(), and fontLetterSpacing().

bool QTextCharFormat::fontOverline() const

Returns true if the text format's font is overlined; otherwise returns false.

See also setFontOverline() and font().

qreal QTextCharFormat::fontPointSize() const

Returns the font size used to display text in this format.

See also setFontPointSize() and font().

int QTextCharFormat::fontStretch() const

Returns the current font stretching.

This function was introduced in Qt 5.0.

See also setFontStretch().

bool QTextCharFormat::fontStrikeOut() const

Returns true if the text format's font is struck out (has a horizontal line drawn through it); otherwise returns false.

See also setFontStrikeOut() and font().

QFont::StyleHint QTextCharFormat::fontStyleHint() const

Returns the font style hint.

This function was introduced in Qt 4.5.

See also setFontStyleHint() and font().

QFont::StyleStrategy QTextCharFormat::fontStyleStrategy() const

Returns the current font style strategy.

This function was introduced in Qt 4.5.

See also setFontStyleStrategy() and font().

bool QTextCharFormat::fontUnderline() const

Returns true if the text format's font is underlined; otherwise returns false.

See also setFontUnderline() and font().

int QTextCharFormat::fontWeight() const

Returns the text format's font weight.

See also setFontWeight(), font(), and QFont::Weight.

qreal QTextCharFormat::fontWordSpacing() const

Returns the current word spacing value.

This function was introduced in Qt 4.4.

See also setFontWordSpacing().

bool QTextCharFormat::isAnchor() const

Returns true if the text is formatted as an anchor; otherwise returns false.

See also setAnchor(), setAnchorHref(), and setAnchorNames().

bool QTextCharFormat::isValid() const

Returns true if this character format is valid; otherwise returns false.

void QTextCharFormat::setAnchor(bool anchor)

If anchor is true, text with this format represents an anchor, and is formatted in the appropriate way; otherwise the text is formatted normally. (Anchors are hyperlinks which are often shown underlined and in a different color from plain text.)

The way the text is rendered is independent of whether or not the format has a valid anchor defined. Use setAnchorHref(), and optionally setAnchorNames() to create a hypertext link.

See also isAnchor().

void QTextCharFormat::setAnchorHref(const QString &value)

Sets the hypertext link for the text format to the given value. This is typically a URL like "http://example.com/index.html".

The anchor will be displayed with the value as its display text; if you want to display different text call setAnchorNames().

To format the text as a hypertext link use setAnchor().

See also anchorHref().

void QTextCharFormat::setAnchorNames(const QStringList &names)

Sets the text format's anchor names. For the anchor to work as a hyperlink, the destination must be set with setAnchorHref() and the anchor must be enabled with setAnchor().

This function was introduced in Qt 4.3.

See also anchorNames().

void QTextCharFormat::setFont(const QFont &font, FontPropertiesInheritanceBehavior behavior)

Sets the text format's font.

If behavior is QTextCharFormat::FontPropertiesAll, the font property that has not been explicitly set is treated like as it were set with default value; If behavior is QTextCharFormat::FontPropertiesSpecifiedOnly, the font property that has not been explicitly set is ignored and the respective property value remains unchanged.

This function was introduced in Qt 5.3.

See also font().

void QTextCharFormat::setFont(const QFont &font)

This is an overloaded function.

Sets the text format's font.

See also font().

void QTextCharFormat::setFontCapitalization(QFont::Capitalization capitalization)

Sets the capitalization of the text that apppears in this font to capitalization.

A font's capitalization makes the text appear in the selected capitalization mode.

This function was introduced in Qt 4.4.

See also fontCapitalization().

void QTextCharFormat::setFontFamily(const QString &family)

Sets the text format's font family.

See also fontFamily() and setFont().

void QTextCharFormat::setFontFixedPitch(bool fixedPitch)

If fixedPitch is true, sets the text format's font to be fixed pitch; otherwise a non-fixed pitch font is used.

See also fontFixedPitch() and setFont().

void QTextCharFormat::setFontHintingPreference(QFont::HintingPreference hintingPreference)

Sets the hinting preference of the text format's font to be hintingPreference.

This function was introduced in Qt 4.8.

See also fontHintingPreference(), setFont(), and QFont::setHintingPreference().

void QTextCharFormat::setFontItalic(bool italic)

If italic is true, sets the text format's font to be italic; otherwise the font will be non-italic.

See also fontItalic() and setFont().

void QTextCharFormat::setFontKerning(bool enable)

Enables kerning for this font if enable is true; otherwise disables it.

When kerning is enabled, glyph metrics do not add up anymore, even for Latin text. In other words, the assumption that width('a') + width('b') is equal to width("ab") is not neccesairly true.

This function was introduced in Qt 4.5.

See also fontKerning() and setFont().

void QTextCharFormat::setFontLetterSpacing(qreal spacing)

Sets the letter spacing of this format to the given spacing. The meaning of the value depends on the font letter spacing type.

For percentage spacing a value of 100 indicates default spacing; a value of 200 doubles the amount of space a letter takes.

This function was introduced in Qt 4.4.

See also fontLetterSpacing(), setFontLetterSpacingType(), and fontLetterSpacingType().

void QTextCharFormat::setFontLetterSpacingType(QFont::SpacingType letterSpacingType)

Sets the letter spacing type of this format to letterSpacingType.

This function was introduced in Qt 5.0.

See also fontLetterSpacingType(), setFontLetterSpacing(), and fontLetterSpacing().

void QTextCharFormat::setFontOverline(bool overline)

If overline is true, sets the text format's font to be overlined; otherwise the font is displayed non-overlined.

See also fontOverline() and setFont().

void QTextCharFormat::setFontPointSize(qreal size)

Sets the text format's font size.

See also fontPointSize() and setFont().

void QTextCharFormat::setFontStretch(int factor)

Sets the stretch factor for the font to factor.

The stretch factor changes the width of all characters in the font by factor percent. For example, setting factor to 150 results in all characters in the font being 1.5 times (ie. 150%) wider. The default stretch factor is 100. The minimum stretch factor is 1, and the maximum stretch factor is 4000.

The stretch factor is only applied to outline fonts. The stretch factor is ignored for bitmap fonts.

This function was introduced in Qt 5.0.

See also fontStretch().

void QTextCharFormat::setFontStrikeOut(bool strikeOut)

If strikeOut is true, sets the text format's font with strike-out enabled (with a horizontal line through it); otherwise it is displayed without strikeout.

See also fontStrikeOut() and setFont().

void QTextCharFormat::setFontStyleHint(QFont::StyleHint hint, QFont::StyleStrategy strategy = QFont::PreferDefault)

Sets the font style hint and strategy.

Qt does not support style hints on X11 since this information is not provided by the window system.

This function was introduced in Qt 4.5.

See also fontStyleHint(), setFont(), and QFont::setStyleHint().

void QTextCharFormat::setFontStyleStrategy(QFont::StyleStrategy strategy)

Sets the font style strategy.

This function was introduced in Qt 4.5.

See also fontStyleStrategy(), setFont(), and QFont::setStyleStrategy().

void QTextCharFormat::setFontUnderline(bool underline)

If underline is true, sets the text format's font to be underlined; otherwise it is displayed non-underlined.

See also fontUnderline() and setFont().

void QTextCharFormat::setFontWeight(int weight)

Sets the text format's font weight to weight.

See also fontWeight(), setFont(), and QFont::Weight.

void QTextCharFormat::setFontWordSpacing(qreal spacing)

Sets the word spacing of this format to the given spacing, in pixels.

This function was introduced in Qt 4.4.

See also fontWordSpacing().

void QTextCharFormat::setTextOutline(const QPen &pen)

Sets the pen used to draw the outlines of characters to the given pen.

See also textOutline().

void QTextCharFormat::setToolTip(const QString &text)

Sets the tool tip for a fragment of text to the given text.

This function was introduced in Qt 4.3.

See also toolTip().

void QTextCharFormat::setUnderlineColor(const QColor &color)

Sets the underline color used for the characters with this format to the color specified.

See also underlineColor().

void QTextCharFormat::setUnderlineStyle(UnderlineStyle style)

Sets the style of underlining the text to style.

This function was introduced in Qt 4.2.

See also underlineStyle().

void QTextCharFormat::setVerticalAlignment(VerticalAlignment alignment)

Sets the vertical alignment used for the characters with this format to the alignment specified.

See also verticalAlignment().

QPen QTextCharFormat::textOutline() const

Returns the pen used to draw the outlines of characters in this format.

See also setTextOutline().

QString QTextCharFormat::toolTip() const

Returns the tool tip that is displayed for a fragment of text.

This function was introduced in Qt 4.3.

See also setToolTip().

QColor QTextCharFormat::underlineColor() const

Returns the color used to underline the characters with this format.

See also setUnderlineColor().

UnderlineStyle QTextCharFormat::underlineStyle() const

Returns the style of underlining the text.

This function was introduced in Qt 4.2.

See also setUnderlineStyle().

VerticalAlignment QTextCharFormat::verticalAlignment() const

Returns the vertical alignment used for characters with this format.

See also setVerticalAlignment().