QTextCharFormat Class
QTextCharFormat 类为QTextDocument 中的字符提供格式设置信息。更多内容...
| 头文件: | #include <QTextCharFormat> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 继承自: | QTextFormat |
| 继承自: |
- 所有成员列表,包括继承的成员
- 已弃用的成员
- QTextCharFormat 属于“富文本处理 API”和“隐式共享类”的一部分。
注意:该类中的所有函数均为可重入函数。
公共类型
| 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::FontPropertiesSpecifiedOnly | 0 | 如果未显式设置某个属性,则不更改文本格式的属性值。 |
QTextCharFormat::FontPropertiesAll | 1 | 如果未显式设置某个属性,则用默认值覆盖文本格式的该属性。 |
另请参阅 setFont()。
enum QTextCharFormat::UnderlineStyle
此枚举描述了绘制带下划线文本的各种方式。
| 常量 | 值 | 描述 |
|---|---|---|
QTextCharFormat::NoUnderline | 0 | 文本不带任何下划线装饰。 |
QTextCharFormat::SingleUnderline | 1 | 使用Qt::SolidLine 绘制一条线。 |
QTextCharFormat::DashUnderline | 2 | 使用Qt::DashLine 绘制破折号。 |
QTextCharFormat::DotLine | 3 | 点使用Qt::DotLine 绘制; |
QTextCharFormat::DashDotLine | 4 | 破折号和点使用Qt::DashDotLine 绘制。 |
QTextCharFormat::DashDotDotLine | 5 | 下划线使用Qt::DashDotDotLine 绘制。 |
QTextCharFormat::WaveUnderline | 6 | 文本使用波浪线进行下划线。 |
QTextCharFormat::SpellCheckUnderline | 7 | 下划线的绘制取决于 QPlatformTheme 的 SpellCheckUnderlineStyle 主题提示。默认情况下,它映射到 WaveUnderline;在 macOS 上,它映射到 DotLine。 |
另请参阅 Qt::PenStyle 。
enum QTextCharFormat::VerticalAlignment
此枚举描述了相邻字符的垂直对齐方式。
| 常量 | 值 | 描述 |
|---|---|---|
QTextCharFormat::AlignNormal | 0 | 相邻字符按照所用书写系统中文本的标准方式进行定位。 |
QTextCharFormat::AlignSuperScript | 1 | 字符位于正常文本基线之上。 |
QTextCharFormat::AlignSubScript | 2 | 字符位于正常文本基线下方。 |
QTextCharFormat::AlignMiddle | 3 | 对象的中心与基线垂直对齐。目前,此功能仅针对内联对象实现。 |
QTextCharFormat::AlignBottom | 5 | 对象的下边缘与基线垂直对齐。 |
QTextCharFormat::AlignTop | 4 | 对象的顶边与基线垂直对齐。 |
QTextCharFormat::AlignBaseline | 6 | 字符的基线对齐。 |
成员函数文档
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.