本页内容

QTextCharFormat Class

QTextCharFormat 类为QTextDocument 中的字符提供格式设置信息。更多内容...

头文件: #include <QTextCharFormat>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
继承自: QTextFormat
继承自:

QTextImageFormat 以及QTextTableCellFormat

注意:该类中的所有函数均为可重入函数。

公共类型

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

公共函数

QTextCharFormat()
QString anchorHref() const
QStringList anchorNames() const
(since 6.0) qreal baselineOffset() const
QFont font() const
QFont::Capitalization fontCapitalization() const
QVariant fontFamilies() const
(since 6.11) QMap<QFont::Tag, quint32> fontFeatures() 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
QVariant fontStyleName() const
QFont::StyleStrategy fontStyleStrategy() const
bool fontUnderline() const
(since 6.11) QMap<QFont::Tag, float> fontVariableAxes() 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)
(since 6.0) void setBaselineOffset(qreal baseline)
void setFont(const QFont &font, QTextCharFormat::FontPropertiesInheritanceBehavior behavior = FontPropertiesAll)
void setFontCapitalization(QFont::Capitalization capitalization)
void setFontFamilies(const QStringList &families)
(since 6.11) void setFontFeatures(const QMap<QFont::Tag, quint32> &fontFeatures)
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 setFontStyleName(const QString &styleName)
void setFontStyleStrategy(QFont::StyleStrategy strategy)
void setFontUnderline(bool underline)
(since 6.11) void setFontVariableAxes(const QMap<QFont::Tag, float> &fontVariableAxes)
void setFontWeight(int weight)
void setFontWordSpacing(qreal spacing)
(since 6.0) void setSubScriptBaseline(qreal baseline)
(since 6.0) void setSuperScriptBaseline(qreal baseline)
void setTextOutline(const QPen &pen)
void setToolTip(const QString &text)
void setUnderlineColor(const QColor &color)
void setUnderlineStyle(QTextCharFormat::UnderlineStyle style)
void setVerticalAlignment(QTextCharFormat::VerticalAlignment alignment)
(since 6.0) qreal subScriptBaseline() const
(since 6.0) qreal superScriptBaseline() const
QPen textOutline() const
QString toolTip() const
QColor underlineColor() const
QTextCharFormat::UnderlineStyle underlineStyle() const
QTextCharFormat::VerticalAlignment verticalAlignment() const

详细说明

文档中文本的字符格式指定了文本的视觉属性,以及其在超文本文档中的作用信息。

可以通过向setFont()函数提供字体来设置所使用的字体,并可以调整其外观的各个方面,以获得所需的效果。setFontFamilies() 和setFontPointSize() 定义了字体的字族(例如 Times)和打印大小;setFontWeight() 和setFontItalic() 用于控制字体的样式。setFontUnderline()、setFontOverline()、setFontStrikeOut() 和setFontFixedPitch() 为文本提供了额外的效果。

颜色通过setForeground() 设置。若文本需用作锚点(用于超链接),可通过setAnchor() 启用该功能。setAnchorHref() 和setAnchorNames() 函数用于指定超链接目标及锚点名称的相关信息。

另请参阅 QTextFormat 、QTextBlockFormat 、QTextTableFormat 和QTextListFormat 。

成员类型文档

enum QTextCharFormat::FontPropertiesInheritanceBehavior

此枚举指定了setFont() 函数在遇到未设置的字体属性时应如何处理。

常量值描述
QTextCharFormat::FontPropertiesSpecifiedOnly0如果未显式设置某个属性,则不更改文本格式的属性值。
QTextCharFormat::FontPropertiesAll1如果未显式设置某个属性,则用默认值覆盖文本格式的该属性。

另请参阅 setFont()。

enum QTextCharFormat::UnderlineStyle

此枚举描述了绘制带下划线文本的各种方式。

常量值描述
QTextCharFormat::NoUnderline0文本不带任何下划线装饰。
QTextCharFormat::SingleUnderline1使用Qt::SolidLine 绘制一条线。
QTextCharFormat::DashUnderline2使用Qt::DashLine 绘制破折号。
QTextCharFormat::DotLine3点使用Qt::DotLine 绘制;
QTextCharFormat::DashDotLine4破折号和点使用Qt::DashDotLine 绘制。
QTextCharFormat::DashDotDotLine5下划线使用Qt::DashDotDotLine 绘制。
QTextCharFormat::WaveUnderline6文本使用波浪线进行下划线。
QTextCharFormat::SpellCheckUnderline7下划线的绘制取决于 QPlatformTheme 的 SpellCheckUnderlineStyle 主题提示。默认情况下,它映射到 WaveUnderline;在 macOS 上,它映射到 DotLine。

另请参阅 Qt::PenStyle 。

enum QTextCharFormat::VerticalAlignment

此枚举描述了相邻字符的垂直对齐方式。

常量值描述
QTextCharFormat::AlignNormal0相邻字符按照所用书写系统中文本的标准方式进行定位。
QTextCharFormat::AlignSuperScript1字符位于正常文本基线之上。
QTextCharFormat::AlignSubScript2字符位于正常文本基线下方。
QTextCharFormat::AlignMiddle3对象的中心与基线垂直对齐。目前,此功能仅针对内联对象实现。
QTextCharFormat::AlignBottom5对象的下边缘与基线垂直对齐。
QTextCharFormat::AlignTop4对象的顶边与基线垂直对齐。
QTextCharFormat::AlignBaseline6字符的基线对齐。

成员函数文档

QTextCharFormat::QTextCharFormat()

创建一个新的字符格式对象。

QString QTextCharFormat::anchorHref() const

返回文本格式的超链接,如果未设置超链接,则返回空字符串。

另请参阅 setAnchorHref()。

QStringList QTextCharFormat::anchorNames() const

返回与该文本格式关联的锚点名称;如果未设置任何锚点名称,则返回一个空字符串列表。如果设置了锚点名称,则具有此格式的文本可作为超文本链接的目标。

另请参阅 setAnchorNames()。

[since 6.0] qreal QTextCharFormat::baselineOffset() const

返回基线偏移量(以百分比表示)。

该函数在 Qt 6.0 中引入。

另请参阅 setBaselineOffset()、setSubScriptBaseline()、subScriptBaseline()、setSuperScriptBaseline(),以及superScriptBaseline()。

QFont QTextCharFormat::font() const

返回此字符格式的字体。

该函数会考虑该格式的字体属性(例如fontWeight() 和fontPointSize()),并基于如下定义的默认字体进行解析。如果该格式属于某个文档,则使用该文档的默认字体;否则,这些属性将基于默认构造的QFont 进行解析。

例如,如果该格式的字体大小未从默认字体进行更改,则fontPointSize() 返回 0,而font().pointSize() 返回实际用于绘制的尺寸。

另请参阅 setFont() 和QTextDocument::defaultFont()。

QFont::Capitalization QTextCharFormat::fontCapitalization() const

返回字体的当前大小写类型。

另请参阅 setFontCapitalization()。

QVariant QTextCharFormat::fontFamilies() const

返回文本格式的字体家族。

注意: 出于历史原因,此 函数返回一个QVariant 。在 Qt 7 中,该行为将被修正为返回QStringList 。该变体包含一个QStringList 对象,可通过对其调用toStringList() 来提取。

另请参见 setFontFamilies() 和font()。

[since 6.11] QMap<QFont::Tag, quint32> QTextCharFormat::fontFeatures() const

获取文本格式中字体的排版特征。

该函数于 Qt 6.11 中引入。

另请参阅 setFontFeatures()。

bool QTextCharFormat::fontFixedPitch() const

如果文本格式的字体为等宽字体,则返回true ;否则返回false 。

另请参阅 setFontFixedPitch() 和font()。

QFont::HintingPreference QTextCharFormat::fontHintingPreference() const

返回为此文本格式设置的提示偏好。

另请参阅 setFontHintingPreference()、font() 和QFont::hintingPreference()。

bool QTextCharFormat::fontItalic() const

如果文本格式的字体为斜体,则返回true ;否则返回false 。

另请参阅 setFontItalic() 和font()。

bool QTextCharFormat::fontKerning() const

如果启用了字体字距调整,则返回true 。

另请参阅 setFontKerning() 和font()。

qreal QTextCharFormat::fontLetterSpacing() const

返回当前的字母间距。

另请参阅 setFontLetterSpacing()、setFontLetterSpacingType() 和fontLetterSpacingType()。

QFont::SpacingType QTextCharFormat::fontLetterSpacingType() const

返回此格式的字符间距类型。

另请参阅 setFontLetterSpacingType()、setFontLetterSpacing() 和fontLetterSpacing()。

bool QTextCharFormat::fontOverline() const

如果文本格式的字体带有上划线,则返回true ;否则返回false 。

另请参阅 setFontOverline() 和font()。

qreal QTextCharFormat::fontPointSize() const

返回用于以该格式显示文本的字体大小。

另请参阅 setFontPointSize() 和font()。

int QTextCharFormat::fontStretch() const

返回当前的字体拉伸倍数。

另请参阅 ` setFontStretch()`。

bool QTextCharFormat::fontStrikeOut() const

如果文本格式的字体被划线(即被画上一条水平线),则返回true ;否则返回false 。

另请参阅 setFontStrikeOut() 和font()。

QFont::StyleHint QTextCharFormat::fontStyleHint() const

返回字体样式提示。

另请参阅 setFontStyleHint() 和font()。

QVariant QTextCharFormat::fontStyleName() const

返回文本格式的字体样式名称。

注意: 出于历史原因,此 函数返回的是QVariant 。在 Qt 7 中,该行为将被修正为返回QStringList 。该变体包含一个QStringList 对象,可通过对其调用toStringList() 来提取该对象。

另请参见 setFontStyleName()、font(),以及QFont::styleName()。

QFont::StyleStrategy QTextCharFormat::fontStyleStrategy() const

返回当前的字体样式策略。

另请参阅 setFontStyleStrategy() 和font()。

bool QTextCharFormat::fontUnderline() const

如果文本格式的字体带有下划线,则返回true ;否则返回false 。

另请参阅 setFontUnderline() 和font()。

[since 6.11] QMap<QFont::Tag, float> QTextCharFormat::fontVariableAxes() const

获取文本格式中字体的可变轴。

该函数于 Qt 6.11 中引入。

另请参阅 setFontVariableAxes()。

int QTextCharFormat::fontWeight() const

返回文本格式的字重。

另请参阅 setFontWeight()、font() 以及QFont::Weight 。

qreal QTextCharFormat::fontWordSpacing() const

返回当前的单词间距值。

另请参阅 ` setFontWordSpacing()`。

bool QTextCharFormat::isAnchor() const

如果文本格式化为锚点,则返回true ;否则返回false 。

另请参阅 setAnchor()、setAnchorHref() 和setAnchorNames()。

bool QTextCharFormat::isValid() const

如果该字符格式有效,则返回true ;否则返回false。

void QTextCharFormat::setAnchor(bool anchor)

如果 `anchor ` 为真,则此格式的文本代表一个锚点,并将按相应方式进行格式化;否则,该文本将按常规方式进行格式化。(锚点是超链接,通常以带下划线且与纯文本颜色不同的形式显示。)

文本的呈现方式与该格式是否定义了有效的锚点无关。请使用 `setAnchorHref()`,并可选地使用 `setAnchorNames()` 来创建超文本链接。

另请参阅 isAnchor()。

void QTextCharFormat::setAnchorHref(const QString &value)

将文本格式的超链接设置为给定的value 。这通常是一个类似于“http://example.com/index.html”的 URL。

该锚点将显示为value 作为其显示文本;若要显示其他文本,请调用setAnchorNames()。

若要将文本格式化为超链接,请使用setAnchor()。

另请参阅 anchorHref()。

void QTextCharFormat::setAnchorNames(const QStringList &names)

设置文本格式的锚点names 。要使锚点作为超链接起作用,必须使用setAnchorHref() 设置目标地址,并使用setAnchor() 启用该锚点。

另请参阅 anchorNames()。

[since 6.0] void QTextCharFormat::setBaselineOffset(qreal baseline)

将文本基线(以高度的百分比表示)设置为baseline 。正值会将文本向上移动相应百分比的距离;负值则将其向下移动。默认值为0。

该函数在 Qt 6.0 中引入。

另请参阅 baselineOffset()、setSubScriptBaseline()、subScriptBaseline()、setSuperScriptBaseline() 以及superScriptBaseline()。

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

设置文本格式的font 。

如果behavior 为QTextCharFormat::FontPropertiesAll ,则未显式设置的字体属性将被视为已设置为默认值;如果behavior 为QTextCharFormat::FontPropertiesSpecifiedOnly ,则未显式设置的字体属性将被忽略,相应的属性值保持不变。

另请参阅 font()。

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

将此字体中显示的文本的大小写设置为capitalization 。

字体的首字母大写设置会使文本以所选的首字母大写模式显示。

另请参阅 fontCapitalization()。

void QTextCharFormat::setFontFamilies(const QStringList &families)

设置文本格式的字体families 。

另请参阅 fontFamilies() 和setFont()。

[since 6.11] void QTextCharFormat::setFontFeatures(const QMap<QFont::Tag, quint32> &fontFeatures)

将文本格式的字体排版特征设置为fontFeatures 。

该函数于 Qt 6.11 中引入。

另请参阅 fontFeatures() 和QFont::setFeature()。

void QTextCharFormat::setFontFixedPitch(bool fixedPitch)

如果fixedPitch 为真,则将文本格式的字体设置为等宽字体;否则使用非等宽字体。

另请参阅 fontFixedPitch() 和setFont()。

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

将文本格式的字体提示首选项设置为hintingPreference 。

另请参阅 fontHintingPreference()、setFont() 和QFont::setHintingPreference()。

void QTextCharFormat::setFontItalic(bool italic)

如果italic 为真,则将文本格式的字体设置为斜体;否则,字体将设置为非斜体。

另请参阅 fontItalic() 和setFont()。

void QTextCharFormat::setFontKerning(bool enable)

如果enable 为true,则启用该字体的字间距调整;否则禁用。

当字间距调整功能启用时,即使对于拉丁文,字形度量值也不再相加。换句话说,width('a') + width('b') 等于 width("ab") 这一假设并不一定成立。

另请参阅 fontKerning() 和setFont()。

void QTextCharFormat::setFontLetterSpacing(qreal spacing)

将此格式的字符间距设置为给定的spacing 。该值的含义取决于字体的字符间距类型。

对于百分比间距,值 100 表示默认间距;值 200 表示字母所占空间加倍。

另请参阅 fontLetterSpacing()、setFontLetterSpacingType() 和fontLetterSpacingType()。

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

将此格式的字母间距类型设置为letterSpacingType 。

另请参阅 fontLetterSpacingType()、setFontLetterSpacing() 和fontLetterSpacing()。

void QTextCharFormat::setFontOverline(bool overline)

如果overline 为真,则将文本格式的字体设置为带上划线;否则,字体显示为不带上划线。

另请参阅 fontOverline() 和setFont()。

void QTextCharFormat::setFontPointSize(qreal size)

设置文本格式的字体size 。

另请参阅 fontPointSize() 和setFont()。

void QTextCharFormat::setFontStretch(int factor)

将字体的拉伸系数设置为factor 。

拉伸系数会按该百分比比例调整字体中所有字符的宽度。 例如,将factor 设置为150,将导致该字体中所有字符的宽度增加1.5倍(即150%)。默认拉伸系数为100。最小拉伸系数为1,最大拉伸系数为4000。

拉伸因子仅适用于轮廓字体。对于位图字体,拉伸因子将被忽略。

另请参阅 fontStretch()。

void QTextCharFormat::setFontStrikeOut(bool strikeOut)

如果strikeOut 为真,则将文本格式的字体设置为启用删除线(即在文字上方加一条水平线);否则,文字将不显示删除线。

另请参阅 fontStrikeOut() 和setFont()。

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

设置字体样式hint 和strategy 。

Qt 不支持 X11 上的样式提示,因为窗口系统不提供此类信息。

另请参阅 fontStyleHint()、setFont() 和QFont::setStyleHint()。

void QTextCharFormat::setFontStyleName(const QString &styleName)

设置文本格式的字体styleName 。

另请参阅 fontStyleName()、setFont() 和QFont::setStyleName()。

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

设置字体样式为strategy 。

另请参阅 fontStyleStrategy()、setFont() 和QFont::setStyleStrategy()。

void QTextCharFormat::setFontUnderline(bool underline)

如果underline 为真,则将文本格式的字体设置为带下划线;否则,该文本将显示为不带下划线。

另请参阅 fontUnderline() 和setFont()。

[since 6.11] void QTextCharFormat::setFontVariableAxes(const QMap<QFont::Tag, float> &fontVariableAxes)

将文本格式的字体变量 axes 设置为fontVariableAxes 。

该函数于 Qt 6.11 中引入。

另请参阅 fontVariableAxes() 和QFont::setVariableAxis()。

void QTextCharFormat::setFontWeight(int weight)

将文本格式的字体粗细设置为weight 。

另请参阅 fontWeight()、setFont() 和QFont::Weight 。

void QTextCharFormat::setFontWordSpacing(qreal spacing)

将此格式的字间距设置为指定的spacing ,单位为像素。

另请参阅 fontWordSpacing()。

[since 6.0] void QTextCharFormat::setSubScriptBaseline(qreal baseline)

将下标基线设置为字体高度的百分比,具体值为baseline 。默认值为16.67%(高度的1/6)

该函数在 Qt 6.0 中引入。

另请参阅 subScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset() 以及baselineOffset()。

[since 6.0] void QTextCharFormat::setSuperScriptBaseline(qreal baseline)

将上标的基线设置为字体高度的百分比,该百分比通过baseline 参数指定。默认值为 50%(即高度的 1/2)。

该函数在 Qt 6.0 中引入。

另请参阅 superScriptBaseline()、setSubScriptBaseline()、subScriptBaseline()、setBaselineOffset() 以及baselineOffset()。

void QTextCharFormat::setTextOutline(const QPen &pen)

将用于绘制字符轮廓的画笔设置为指定的pen 。

另请参阅 textOutline()。

void QTextCharFormat::setToolTip(const QString &text)

将一段文本的工具提示设置为给定的text 。

另请参阅 toolTip()。

void QTextCharFormat::setUnderlineColor(const QColor &color)

将用于为具有此格式的字符绘制下划线、上划线和删除线的颜色设置为指定的color 。

另请参阅 underlineColor()。

void QTextCharFormat::setUnderlineStyle(QTextCharFormat::UnderlineStyle style)

将文本下划线样式设置为style 。

另请参阅 underlineStyle()。

void QTextCharFormat::setVerticalAlignment(QTextCharFormat::VerticalAlignment alignment)

将此格式下字符的垂直对齐方式设置为指定的alignment 。

另请参阅 verticalAlignment()。

[since 6.0] qreal QTextCharFormat::subScriptBaseline() const

返回下标基线高度占字体高度的百分比。

该函数在 Qt 6.0 中引入。

另请参阅 setSubScriptBaseline()、setSuperScriptBaseline()、superScriptBaseline()、setBaselineOffset() 以及baselineOffset()。

[since 6.0] qreal QTextCharFormat::superScriptBaseline() const

返回上标基线占字体高度的百分比。

该函数在 Qt 6.0 中引入。

另请参阅 setSuperScriptBaseline()、setSubScriptBaseline()、subScriptBaseline()、setBaselineOffset() 以及baselineOffset()。

QPen QTextCharFormat::textOutline() const

返回用于以该格式绘制字符轮廓的画笔。

另请参阅 setTextOutline()。

QString QTextCharFormat::toolTip() const

返回针对某段文本显示的工具提示。

另请参阅 setToolTip()。

QColor QTextCharFormat::underlineColor() const

返回用于为具有此格式的字符绘制下划线、上划线和删除线的颜色。

另请参阅 setUnderlineColor()。

QTextCharFormat::UnderlineStyle QTextCharFormat::underlineStyle() const

返回文本下划线的样式。

另请参阅 ` setUnderlineStyle()`。

QTextCharFormat::VerticalAlignment QTextCharFormat::verticalAlignment() const

返回此格式下字符所使用的垂直对齐方式。

另请参阅 setVerticalAlignment()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.