QTextCharFormat Class

QTextCharFormat 类为QTextDocument 中的字符提供格式化信息

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

QTextImageFormatQTextTableCellFormat

注意:该类中的所有函数都是可重入的

公共类型

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

返回此字符格式的字体。

另请参阅 setFont()。

QFont::Capitalization QTextCharFormat::fontCapitalization() const

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

另请参阅 setFontCapitalization()。

QVariant QTextCharFormat::fontFamilies() const

返回文本格式的字体族。

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

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

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 XML 7 中更正为返回QStringList 。该变量包含一个QStringList 对象,可通过调用toStringList() 将其提取出来。

另请参阅 setFontStyleName()、font() 和QFont::styleName()。

QFont::StyleStrategy QTextCharFormat::fontStyleStrategy() const

返回当前字体样式策略。

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

bool QTextCharFormat::fontUnderline() const

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

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

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 为 true,则具有此格式的文本代表锚点,并以适当的方式格式化;否则文本格式正常。(锚点是超链接,通常以下划线和不同于纯文本的颜色显示)。

文本的显示方式与格式中是否定义了有效的锚点无关。使用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

如果behaviorQTextCharFormat::FontPropertiesAll ,则未明确设置的字体属性将被视为已设置默认值;如果behaviorQTextCharFormat::FontPropertiesSpecifiedOnly ,则未明确设置的字体属性将被忽略,相关属性值保持不变。

另请参阅 font() 。

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

将该字体中出现的文本的大小写设置为capitalization

字体的大小写使文本以选定的大小写模式显示。

另请参阅 fontCapitalization() 。

void QTextCharFormat::setFontFamilies(const QStringList &families)

设置文本格式的字体families

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

void QTextCharFormat::setFontFixedPitch(bool fixedPitch)

如果fixedPitch 为 true,则将文本格式的字体设置为固定间距;否则将使用非固定间距字体。

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

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

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

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

void QTextCharFormat::setFontItalic(bool italic)

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

另请参阅 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 为 true,则将文本格式的字体设置为叠加字体;否则显示为非叠加字体。

另请参阅 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 为 true,则设置文本格式的字体,并启用 "删除线"(用一条水平线穿过);否则不显示 "删除线"。

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

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

设置字体样式hintstrategy

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 为 true,则将文本格式的字体设置为带下划线;否则显示为无下划线。

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

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

© 2025 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.