QTextFormat 类

The QTextFormat class provides formatting information for a QTextDocument. 更多...

头文件 #include <QTextFormat>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承自

QTextBlockFormat, QTextCharFormat, QTextFrameFormat, and QTextListFormat

注意: 此类中所有函数均是 重入

公共类型

枚举FormatType { InvalidFormat, BlockFormat, CharFormat, ListFormat, FrameFormat, UserFormat }
枚举ObjectTypes { NoObject, ImageObject, TableObject, TableCellObject, UserObject }
枚举PageBreakFlag { PageBreak_Auto, PageBreak_AlwaysBefore, PageBreak_AlwaysAfter }
标志PageBreakFlags
枚举Property { ObjectIndex, CssFloat, LayoutDirection, OutlinePen, ForegroundBrush, …, UserProperty }

公共函数

QTextFormat()
QTextFormat(int type)
QTextFormat(const QTextFormat &other)
~QTextFormat()
QBrushbackground() const
boolboolProperty(int propertyId) const
QBrushbrushProperty(int propertyId) const
voidclearBackground()
voidclearForeground()
voidclearProperty(int propertyId)
QColorcolorProperty(int propertyId) const
qrealdoubleProperty(int propertyId) const
QBrushforeground() const
boolhasProperty(int propertyId) const
intintProperty(int propertyId) const
boolisBlockFormat() const
boolisCharFormat() const
boolisEmpty() const
boolisFrameFormat() const
boolisImageFormat() const
boolisListFormat() const
boolisTableCellFormat() const
boolisTableFormat() const
boolisValid() const
Qt::LayoutDirectionlayoutDirection() const
QTextLengthlengthProperty(int propertyId) const
QList<QTextLength>lengthVectorProperty(int propertyId) const
voidmerge(const QTextFormat &other)
intobjectIndex() const
intobjectType() const
QPenpenProperty(int propertyId) const
QMap<int, QVariant>properties() const
QVariantproperty(int propertyId) const
intpropertyCount() const
voidsetBackground(const QBrush &brush)
voidsetForeground(const QBrush &brush)
voidsetLayoutDirection(Qt::LayoutDirection direction)
voidsetObjectIndex(int index)
voidsetObjectType(int type)
voidsetProperty(int propertyId, const QVariant &value)
voidsetProperty(int propertyId, const QList<QTextLength> &value)
QStringstringProperty(int propertyId) const
voidswap(QTextFormat &other)
QTextBlockFormattoBlockFormat() const
QTextCharFormattoCharFormat() const
QTextFrameFormattoFrameFormat() const
QTextImageFormattoImageFormat() const
QTextListFormattoListFormat() const
QTextTableCellFormattoTableCellFormat() const
QTextTableFormattoTableFormat() const
inttype() const
QVariantoperator QVariant() const
booloperator!=(const QTextFormat &other) const
QTextFormat &operator=(const QTextFormat &other)
booloperator==(const QTextFormat &other) const

详细描述

QTextFormat是一个通用类,用于描述<.getRequestPara(...).artic...QTextDocument中部分内容的格式。派生类QTextCharFormat、QTextBlockFormat、QTextListFormat和QTextTableFormat通常更有用,用于描述应用于文档特定部分的外观格式。

格式具有一个FormatType,该类型指定可以格式化的文本项类型;例如,文本块、列表、表格等。格式还具有各种属性(一些特定于特定格式类型),由属性枚举描述。每个属性都有一个相应的属性。

格式类型由type()函数提供,可以使用isCharFormat()、isBlockFormat()、isListFormat()、isTableFormat()、isFrameFormat()和isImageFormat()函数进行测试。如果确定了类型,可以使用toCharFormat()、toBlockFormat()、toListFormat()、toTableFormat()、toFrameFormat()和toImageFormat()函数获取。

可以使用setProperty()函数设置格式属性,并使用合适的boolProperty()、intProperty()、doubleProperty()和stringProperty()函数获取属性。可以使用allPropertyIds()函数获取格式中使用的所有属性ID。可以使用merge()函数将一个格式合并到另一个格式中。

可以使用setObjectIndex()设置格式对象索引,并使用objectIndex()获取对象索引。这些方法可以用于将与文档中的文本对象关联的格式。它用于表示文档内部列表、框架和表格。

另请参阅富文本处理

成员类型文档

枚举 QTextFormat::FormatType

此枚举描述了一个QTextFormat对象正在格式化的文本项。

常量描述
QTextFormat::InvalidFormat-1由默认构造函数创建的无效格式
QTextFormat::BlockFormat1此对象格式化文本块
QTextFormat::CharFormat2此对象格式化单个字符
QTextFormat::ListFormat3此对象格式化列表
QTextFormat::FrameFormat5此对象格式化框架
QTextFormat::UserFormat100 

另请参阅QTextCharFormatQTextBlockFormatQTextListFormatQTextTableFormattype()。

枚举 QTextFormat::ObjectTypes

此枚举描述了该格式与哪种类型的QTextObject相关联。

常量描述
QTextFormat::NoObject0 
QTextFormat::ImageObject1 
QTextFormat::TableObject2 
QTextFormat::TableCellObject3 
QTextFormat::UserObject0x1000第一个可用于应用程序特定目的的对象。

另请参阅QTextObjectQTextTableQTextObject::format()。

枚举 QTextFormat::PageBreakFlag
QTextFormat::PageBreakFlags

此枚举描述了打印时如何进行页面分页。它映射到相应的CSS属性。

常量描述
QTextFormat::PageBreak_Auto0根据当前页上的可用空间自动确定分页
QTextFormat::PageBreak_AlwaysBefore0x001分页始终在段/表之前
QTextFormat::PageBreak_AlwaysAfter0x010始终在段/表之后开始新页面

PageBreakFlags类型是QFlags<PageBreakFlag>的typedef。它存储PageBreakFlag值的OR组合。

另请参阅QTextBlockFormat::pageBreakPolicyQTextFrameFormat::pageBreakPolicyPageBreakPolicy

枚举 QTextFormat::属性

此枚举描述了格式可以具有的不同属性。

常量描述
QTextFormat::ObjectIndex0x0格式化对象的索引。请参阅 objectIndex()。

段落和字符属性

常量描述
QTextFormat::CssFloat0x0800框架相对于周围文本的位置。
QTextFormat::LayoutDirection0x0801文档中文本的布局方向(Qt::LayoutDirection)。
QTextFormat::OutlinePen0x810 
QTextFormat::ForegroundBrush0x821 
QTextFormat::BackgroundBrush0x820 
QTextFormat::BackgroundImageUrl0x823 

段落属性

常量描述
QTextFormat::BlockAlignment0x1010 
QTextFormat::BlockTopMargin0x1030 
QTextFormat::BlockBottomMargin0x1031 
QTextFormat::BlockLeftMargin0x1032 
QTextFormat::BlockRightMargin0x1033 
QTextFormat::TextIndent0x1034 
QTextFormat::TabPositions0x1035指定制表位的位置。制表位是结构为QTextOption::Tab的数组,这些数组存储在QList(内部为QList<QVariant>)中。
QTextFormat::BlockIndent0x1040 
QTextFormat::LineHeight0x1048 
QTextFormat::LineHeightType0x1049 
QTextFormat::BlockNonBreakableLines0x1050 
QTextFormat::BlockTrailingHorizontalRulerWidth0x1060水平标尺元素的宽度。
QTextFormat::HeadingLevel0x1070标题的级别,例如1对应HTML的H1标签;否则为0。此枚举值已添加到Qt 5.12中。
QTextFormat::BlockCodeFence0x1091Markdown代码块周围“篱笆”中使用的字符。如果代码块是通过缩进来而不是通过篱笆定义的,则该块不应具有此属性。此枚举值已添加到Qt 5.14中。
QTextFormat::BlockQuoteLevel0x1080此块嵌套引用的深度:1表示块是顶层引用块。不是块引用的块不应具有此属性。此枚举值已添加到Qt 5.14中。
QTextFormat::BlockCodeLanguage0x1090预格式化或代码块中的编程语言。不包含代码的块不应具有此属性。此枚举值已添加到Qt 5.14中。
QTextFormat::BlockMarker0x10A0与块一起显示的装饰类型的类型。此枚举值已添加到Qt 5.14中。

字符属性

常量描述
QTextFormat::FontFamily0x2000此属性已弃用。请使用QTextFormat::FontFamilies代替。
QTextFormat::FontFamilies0x1FE7 
QTextFormat::FontStyleName0x1FE8 
QTextFormat::FontPointSize0x2001 
QTextFormat::FontPixelSize0x2009 
QTextFormat::FontSizeAdjustment0x2002指定使用FontPointSize或FontPixelSize设置的字型大小所做的更改。
QTextFormat::FontFixedPitch0x2008 
QTextFormat::FontWeight0x2003 
QTextFormat::FontItalic0x2004 
QTextFormat::FontUnderline0x2005此属性已弃用。请使用QTextFormat::TextUnderlineStyle代替。
QTextFormat::FontOverline0x2006 
QTextFormat::FontStrikeOut0x2007 
QTextFormat::FontCapitalizationFirstFontProperty指定要应用于文本的字体大小。
QTextFormat::FontLetterSpacingType0x1FE9指定FontLetterSpacing属性的意义。默认为QFont::PercentageSpacing
QTextFormat::FontLetterSpacing0x1FE1更改字体中单个字母之间的默认间距。根据FontLetterSpacingType,值指定为百分比或绝对值。默认值是100%。
QTextFormat::FontWordSpacing0x1FE2更改单个单词之间的默认间距。正值通过相应的像素增加行间距;负值减少间距。
QTextFormat::FontStretch0x1FEA对应于QFont::Stretch属性。
QTextFormat::FontStyleHint0x1FE3对应于QFont::StyleHint属性。
QTextFormat::FontStyleStrategy0x1FE4对应于QFont::StyleStrategy属性。
QTextFormat::FontKerning0x1FE5指定字体是否开启字距调整。
QTextFormat::FontHintingPreference0x1FE6根据QFont::HintingPreference枚举的值控制光栅化的使用。
QTextFormat::TextUnderlineColor0x2020指定绘制下划线、上划线和删划线的颜色。
QTextFormat::TextVerticalAlignment0x2021 
QTextFormat::TextOutline0x2022 
QTextFormat::TextUnderlineStyle0x2023 
QTextFormat::TextToolTip0x2024指定要显示在文本片段上的(可选)工具提示。
QTextFormat::TextSuperScriptBaseline0x2025指定上标文本的基线(以高度百分比表示)。
QTextFormat::TextSubScriptBaseline0x2026指定下标文本的基线(以高度百分比表示)。
QTextFormat::TextBaselineOffset0x2027指定文本的基线(以高度百分比表示)。正值将文本向上移动相应的百分比;负值将文本向下移动。
QTextFormat::IsAnchor0x2030 
QTextFormat::AnchorHref0x2031 
QTextFormat::AnchorName0x2032 
QTextFormat::ObjectType0x2f00 

列表属性

常量描述
QTextFormat::ListStyle0x3000指定列表项使用的样式,通过QTextListFormat::Style枚举的值描述。
QTextFormat::ListIndent0x3001指定列表的缩进量。
QTextFormat::ListNumberPrefix0x3002定义加在数字列表项目数字前的文本。
QTextFormat::ListNumberSuffix0x3003定义附加在数字列表项目数字后的文本。
QTextFormat::ListStart (自 Qt 6.6 开始)0x3004定义列表的第一个值。

表格和框架属性

常量描述
QTextFormat::FrameBorder0x4000 
QTextFormat::FrameBorderBrush0x4009 
QTextFormat::FrameBorderStyle0x4010见《BorderStyle枚举》。
QTextFormat::FrameBottomMargin0x4006 
QTextFormat::FrameHeight0x4004 
QTextFormat::FrameLeftMargin0x4007 
QTextFormat::FrameMargin0x4001 
QTextFormat::FramePadding0x4002 
QTextFormat::FrameRightMargin0x4008 
QTextFormat::FrameTopMargin0x4005 
QTextFormat::FrameWidth0x4003 
QTextFormat::TableCellSpacing0x4102 
QTextFormat::TableCellPadding0x4103 
QTextFormat::TableColumns0x4100 
QTextFormat::TableColumnWidthConstraints0x4101 
QTextFormat::TableHeaderRowCount0x4104 
QTextFormat::TableBorderCollapse0x4105指定QTextTableFormat::borderCollapse属性。

表格单元格属性

常量
QTextFormat::TableCellRowSpan0x4810
QTextFormat::TableCellColumnSpan0x4811
QTextFormat::TableCellLeftPadding0x4814
QTextFormat::TableCellRightPadding0x4815
QTextFormat::TableCellTopPadding0x4812
QTextFormat::TableCellBottomPadding0x4813

用于启用QTextTableFormat::borderCollapse的表格单元格属性

常量
QTextFormat::TableCellTopBorder0x4816
QTextFormat::TableCellBottomBorder0x4817
QTextFormat::TableCellLeftBorder0x4818
QTextFormat::TableCellRightBorder0x4819
QTextFormat::TableCellTopBorderStyle0x481a
QTextFormat::TableCellBottomBorderStyle0x481b
QTextFormat::TableCellLeftBorderStyle0x481c
QTextFormat::TableCellRightBorderStyle0x481d
QTextFormat::TableCellTopBorderBrush0x481e
QTextFormat::TableCellBottomBorderBrush0x481f
QTextFormat::TableCellLeftBorderBrush0x4820
QTextFormat::TableCellRightBorderBrush0x4821

图片属性

常量描述
QTextFormat::ImageName0x5000图像的文件名或源。
QTextFormat::ImageTitle0x5001HTML图像标签的标题属性,或Markdown图像链接中的URL之后的双引号字符串。此枚举值自Qt 5.14添加。
QTextFormat::ImageAltText0x5002HTML图像标签的alt属性,或Markdown图像链接中的图像描述。此枚举值自Qt 5.14添加。
QTextFormat::ImageWidth0x5010 
QTextFormat::ImageHeight0x5011 
QTextFormat::ImageQuality0x5014 

选择属性

常量描述
QTextFormat::FullWidthSelection0x06000当设置在选择的字符格式上时,将显示整个文本的宽度。

分页属性

常量描述
QTextFormat::PageBreakPolicy0x7000指定如何分页。请参阅PageBreakFlag枚举。
QTextFormat::UserProperty0x100000 

另请参阅property()和setProperty()

成员函数文档

QTextFormat::QTextFormat()

创建一个具有InvalidFormat的新文本格式。

另请参阅FormatType

[显式] QTextFormat::QTextFormat(int type)

创建具有给定type的新文本格式。

另请参阅FormatType

QTextFormat::QTextFormat(const QTextFormat &other)

创建一个与other文本格式具有相同属性的新文本格式。

[noexcept] QTextFormat::~QTextFormat()

销毁此文本格式。

QBrush QTextFormat::background() const

返回用于绘制文档背景的画笔。

另请参阅setBackground(),clearBackground(),以及foreground()

bool QTextFormat::boolProperty(int propertyId) const

返回由propertyId指定的属性的值。如果属性不是QTextFormat::Bool类型,则返回false。

另请参阅setProperty(),intProperty(),doubleProperty(),stringProperty(),colorProperty(),lengthProperty(),lengthVectorProperty(),以及Property

QBrush QTextFormat::brushProperty(int propertyId) const

返回由 propertyId 指定的属性的值;如果属性不是 QMetaType::QBrush 类型,则返回 Qt::NoBrush

另请参阅 setProperty(),boolProperty(),intProperty(),doubleProperty(),stringProperty(),lengthProperty(),lengthVectorProperty(),以及 Property

void QTextFormat::clearBackground()

清除用于绘制文档背景的画刷。将使用默认画刷。

另请参阅 background(),setBackground(),以及 clearForeground

void QTextFormat::clearForeground()

清除用于绘制文档前景的画刷。将使用默认画刷。

另请参阅 foreground(),setForeground(),以及 clearBackground

void QTextFormat::clearProperty(int propertyId)

清除由 propertyId 指定的属性的值。

另请参阅 Property

QColor QTextFormat::colorProperty(int propertyId) const

返回由 propertyId 指定的属性的值;如果属性不是 QMetaType::QColor 类型,则返回一个无效的颜色。

另请参阅 setProperty(),boolProperty(),intProperty(),doubleProperty(),stringProperty(),lengthProperty(),lengthVectorProperty(),以及 Property

qreal QTextFormat::doubleProperty(int propertyId) const

返回由 propertyId 指定的属性的值。如果属性不是 QMetaType::DoubleQMetaType::Float 类型,则返回 0。

另请参阅 setProperty(),boolProperty(),intProperty(),stringProperty(),colorProperty(),lengthProperty(),lengthVectorProperty(),以及 Property

QBrush QTextFormat::foreground() const

返回用于渲染前景细节(如文本、框架轮廓和表格边框)的画刷。

另请参阅 setForeground(),clearForeground(),以及 background

bool QTextFormat::hasProperty(int propertyId) const

如果文本格式具有给定 propertyId 的属性,则返回 true;否则返回 false

另请参阅 properties() 和 Property

int QTextFormat::intProperty(int propertyId) const

返回由 propertyId 指定的属性的值。如果属性不是 QTextFormat::Integer 类型,则返回 0。

另请参阅setProperty(),boolProperty(),doubleProperty(),stringProperty(),colorProperty(),lengthProperty(),lengthVectorProperty() 和 Property

bool QTextFormat::isBlockFormat() const

如果此文本格式是 BlockFormat,则返回 true;否则返回 false

bool QTextFormat::isCharFormat() const

如果此文本格式是 CharFormat,则返回 true;否则返回 false

bool QTextFormat::isEmpty() const

如果格式未存储任何属性,则返回 true;否则返回 false。

另请参阅propertyCount() 和 properties()。

bool QTextFormat::isFrameFormat() const

如果此文本格式是 FrameFormat,则返回 true;否则返回 false

bool QTextFormat::isImageFormat() const

如果此文本格式是图像格式,则返回 true;否则返回 false

bool QTextFormat::isListFormat() const

如果此文本格式是 ListFormat,则返回 true;否则返回 false

bool QTextFormat::isTableCellFormat() const

如果此文本格式是 TableCellFormat,则返回 true;否则返回 false

bool QTextFormat::isTableFormat() const

如果此文本格式是 TableFormat,则返回 true;否则返回 false

bool QTextFormat::isValid() const

如果格式有效(即不是 InvalidFormat),则返回 true;否则返回 false

Qt::LayoutDirection QTextFormat::layoutDirection() const

返回文档的布局方向。

另请参阅setLayoutDirection

QTextLength QTextFormat::lengthProperty(int propertyId) const

返回由 propertyId 给定的属性的值。

另请参阅 setProperty(),boolProperty(),intProperty(),doubleProperty(),stringProperty(),colorProperty(),lengthVectorProperty(),以及 Property

QList<QTextLength> QTextFormat::lengthVectorProperty(int propertyId) const

返回由 propertyId 给定的属性的值。如果该属性不是 QTextFormat::LengthVector 类型,则返回一个空列表。

另请参阅 setProperty(),boolProperty(),intProperty(),doubleProperty(),stringProperty(),colorProperty(),lengthProperty(),以及 Property

void QTextFormat::merge(const QTextFormat &other)

合并 other 格式与此格式;在存在冲突的情况下,other 格式优先。

int QTextFormat::objectIndex() const

返回格式对象的位置索引,如果格式对象无效则返回 -1。

另请参阅 setObjectIndex

int QTextFormat::objectType() const

返回文本格式的对象类型。

另请参阅 ObjectTypessetObjectType

QPen QTextFormat::penProperty(int propertyId) const

返回由 propertyId 给定的属性的值;如果该属性不是 QMetaType::QPen 类型,则返回 Qt::NoPen

另请参阅 setProperty(),boolProperty(),intProperty(),doubleProperty(),stringProperty(),lengthProperty(),lengthVectorProperty(),以及 Property

QMap<int, QVariant> QTextFormat::properties() const

返回包含此文本格式所有属性的映射。

QVariant QTextFormat::property(int propertyId) const

返回给定 propertyId 指定的属性。

另请参阅 setProperty() 和 Property

int QTextFormat::propertyCount() const

返回存储在格式中的属性数量。

void QTextFormat::setBackground(const QBrush &brush)

将用于绘制文档背景的画笔设置为指定的 brush

另请参阅 backgroundclearBackground,以及 setForeground

void QTextFormat::setForeground(const QBrush &brush)

设置前景笔刷为指定的brush。前景笔刷主要用于渲染文本。

另请参阅前景(),clearForeground()和setBackground()。

void QTextFormat::setLayoutDirection(Qt::LayoutDirection direction)

设置文档的布局方向为指定的direction

另请参阅layoutDirection()。

void QTextFormat::setObjectIndex(int index)

设置格式对象的对象index

另请参阅objectIndex()。

void QTextFormat::setObjectType(int type)

将文本格式对象的类型设置为type

另请参阅ObjectTypesobjectType()。

void QTextFormat::setProperty(int propertyId, const QVariant &value)

将指定的propertyId属性设置为给定的value

另请参阅property()和Property

void QTextFormat::setProperty(int propertyId, const QList<QTextLength> &value)

propertyId指定的属性值设置为value

另请参阅lengthVectorProperty()和Property

QString QTextFormat::stringProperty(int propertyId) const

返回指定propertyId的属性值;如果属性类型不是QMetaType::QString类型,则返回空字符串。

另请参阅setPropertyboolPropertyintPropertydoublePropertycolorPropertylengthPropertylengthVectorPropertyProperty

void QTextFormat::swap(QTextFormat &other)

other交换文本格式。此函数非常快速且永不失败。

QTextBlockFormat QTextFormat::toBlockFormat() const

将此格式作为块格式返回。

QTextCharFormat QTextFormat::toCharFormat() const

以字符格式返回此格式。

QTextFrameFormat QTextFormat::toFrameFormat() const

以框架格式返回此格式。

QTextImageFormat QTextFormat::toImageFormat() const

以图像格式返回此格式。

QTextListFormat QTextFormat::toListFormat() const

以列表格式返回此格式。

QTextTableCellFormat QTextFormat::toTableCellFormat() const

以表格单元格格式返回此格式。

QTextTableFormat QTextFormat::toTableFormat() const

以表格格式返回此格式。

int QTextFormat::type() const

返回此格式的类型。

另请参阅FormatType

QVariant QTextFormat::operator QVariant() const

将文本格式作为 QVariant 返回。

bool QTextFormat::operator!=(const QTextFormat &other) const

如果此文本格式与 other 文本格式不同,则返回 true

QTextFormat &QTextFormat::operator=(const QTextFormat &other)

other 文本格式赋值给此文本格式,并返回对此文本格式的引用。

bool QTextFormat::operator==(const QTextFormat &other) const

如果此文本格式与 other 文本格式相同,则返回 true

© 2024 Qt 公司。此处包含的文档贡献归各自所有者所有。此处提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版 1.3 的条款进行许可。Qt 及相应的标志是芬兰以及/或全球其他国家的 The Qt Company Ltd 的商标。所有其他商标均为各自所有者的财产。