QTextBlockFormat Class
QTextBlockFormat 类为QTextDocument 中的文本块提供格式化信息 ... 更多
头文件: | #include <QTextBlockFormat> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
继承: | QTextFormat |
- 所有成员的列表,包括继承成员
- QTextBlockFormat 属于富文本处理 API和隐式共享类。
注意:该类中的所有函数都是可重入的。
公共类型
enum | LineHeightTypes { SingleHeight, ProportionalHeight, FixedHeight, MinimumHeight, LineDistanceHeight } |
enum class | MarkerType { NoMarker, Unchecked, Checked } |
公共函数
QTextBlockFormat() | |
Qt::Alignment | alignment() const |
qreal | bottomMargin() const |
int | headingLevel() const |
int | indent() const |
bool | isValid() const |
qreal | leftMargin() const |
qreal | lineHeight() const |
qreal | lineHeight(qreal scriptLineHeight, qreal scaling = 1.0) const |
int | lineHeightType() const |
QTextBlockFormat::MarkerType | marker() const |
bool | nonBreakableLines() const |
QTextFormat::PageBreakFlags | pageBreakPolicy() const |
qreal | rightMargin() const |
void | setAlignment(Qt::Alignment alignment) |
void | setBottomMargin(qreal margin) |
void | setHeadingLevel(int level) |
void | setIndent(int indentation) |
void | setLeftMargin(qreal margin) |
void | setLineHeight(qreal height, int heightType) |
void | setMarker(QTextBlockFormat::MarkerType marker) |
void | setNonBreakableLines(bool b) |
void | setPageBreakPolicy(QTextFormat::PageBreakFlags policy) |
void | setRightMargin(qreal margin) |
void | setTabPositions(const QList<QTextOption::Tab> &tabs) |
void | setTextIndent(qreal indent) |
void | setTopMargin(qreal margin) |
QList<QTextOption::Tab> | tabPositions() const |
qreal | textIndent() const |
qreal | topMargin() const |
详细说明
文档由一系列块组成,这些块由QTextBlock 对象表示。每个块都可以包含一个项目,如一段文本、一个表格、一个列表或一张图片。每个块都有一个相关的 QTextBlockFormat(QTextBlock 格式)来指定其特征。
为了适应从左到右和从右到左的语言,你可以使用setLayoutDirection() 设置块的方向。段落对齐方式可通过setAlignment() 设置。页边距由setTopMargin(),setBottomMargin(),setLeftMargin(),setRightMargin() 控制。整体缩进用setIndent() 设置,首行缩进用setTextIndent() 设置。
行距通过setLineHeight() 设置,并通过lineHeight() 和lineHeightType() 获取。可用的行距类型在LineHeightTypes 枚举中。
使用setNonBreakableLines() 可以启用或禁用换行。
用于绘制段落背景的笔刷可通过setBackground() 设置,文本外观的其他方面可通过setProperty() 函数和OutlinePen
、ForegroundBrush
和BackgroundBrush
QTextFormat::Property 值进行自定义。
如果文本块是列表的一部分,也可以使用 listFormat() 函数来设置列表格式。
另请参阅 QTextBlock 和QTextCharFormat 。
成员类型文档
enum QTextBlockFormat::LineHeightTypes
该枚举描述了支持段落的各种行间距类型。
常数 | 值 | 说明 |
---|---|---|
QTextBlockFormat::SingleHeight | 0 | 默认行高:单倍行距。 |
QTextBlockFormat::ProportionalHeight | 1 | 这将设置与行成比例的间距(百分比)。例如,设置为 200 时为双倍行距。 |
QTextBlockFormat::FixedHeight | 2 | 这将行高设置为固定行高(以像素为单位)。 |
QTextBlockFormat::MinimumHeight | 3 | 设置最小行高(单位:像素)。 |
QTextBlockFormat::LineDistanceHeight | 4 | 增加指定的行间高度(单位:像素)。 |
另请参阅 lineHeight()、lineHeightType() 和setLineHeight()。
enum class QTextBlockFormat::MarkerType
该枚举描述了列表项可以具有的标记类型。如果一个列表项(QTextBlock::textList() 返回列表的段落)有标记,它就会被渲染,而不是普通的项目符号。这样,在同一个列表中,可检查列表项可以与普通列表项混合使用,从而覆盖QTextListFormat::style() 为整个列表指定的项目符号类型。
常量 | 值 | 说明 |
---|---|---|
QTextBlockFormat::MarkerType::NoMarker | 0 | 这是默认值:将显示列表项的项目符号。 |
QTextBlockFormat::MarkerType::Unchecked | 1 | 不显示列表项的项目符号,而是显示未选中的复选框。 |
QTextBlockFormat::MarkerType::Checked | 2 | 将显示已选中复选框,而不是列表项的项目符号。 |
将来可能会扩展到指定其他类型的段落装饰。
另请参阅 QTextListFormat::style()。
成员函数文档
QTextBlockFormat::QTextBlockFormat()
构造一个新的 QTextBlockFormat。
Qt::Alignment QTextBlockFormat::alignment() const
返回段落的对齐方式。
另请参见 setAlignment()。
qreal QTextBlockFormat::bottomMargin() const
返回段落的底边距。
另请参阅 setBottomMargin() 和topMargin()。
int QTextBlockFormat::headingLevel() const
如果是标题,则返回段落的标题级别;如果不是,则返回 0。
另请参见 setHeadingLevel()。
int QTextBlockFormat::indent() const
返回段落的缩进。
另请参见 setIndent()。
bool QTextBlockFormat::isValid() const
如果该块格式有效,则返回true
;否则返回 false。
qreal QTextBlockFormat::leftMargin() const
返回段落的左侧边距。
另请参阅 setLeftMargin()、rightMargin() 和indent()。
qreal QTextBlockFormat::lineHeight() const
返回段落的 LineHeight 属性。
另请参见 LineHeightTypes,setLineHeight() 和lineHeightType()。
qreal QTextBlockFormat::lineHeight(qreal scriptLineHeight, qreal scaling = 1.0) const
根据scriptLineHeight 给定的脚本行高度和指定的scaling 因子,返回段落中线条的高度。
返回值还取决于给定的段落 LineHeightType 以及为段落设置的 LineHeight 设置。
对于包含固定像素数的高度,需要进行缩放,以便在打印时进行适当缩放。
另请参阅 LineHeightTypes,setLineHeight() 和lineHeightType()。
int QTextBlockFormat::lineHeightType() const
返回段落的 LineHeightType 属性。
另请参见 LineHeightTypes,setLineHeight() 和lineHeight()。
QTextBlockFormat::MarkerType QTextBlockFormat::marker() const
如果已设置段落标记,则返回段落标记;如果未设置,则返回NoMarker
。
另请参见 setMarker().
bool QTextBlockFormat::nonBreakableLines() const
如果段落中的行不可断开,则返回true
;否则返回false
。
另请参阅 setNonBreakableLines() 。
QTextFormat::PageBreakFlags QTextBlockFormat::pageBreakPolicy() const
返回段落当前设置的分页符策略。默认值为QTextFormat::PageBreak_Auto 。
另请参阅 setPageBreakPolicy() 。
qreal QTextBlockFormat::rightMargin() const
返回段落的右边距。
另请参阅 setRightMargin() 和leftMargin()。
void QTextBlockFormat::setAlignment(Qt::Alignment alignment)
设置段落的alignment 。
另请参见 alignment() 。
void QTextBlockFormat::setBottomMargin(qreal margin)
设置段落底部margin 。
另请参阅 bottomMargin()、setTopMargin()、setLeftMargin() 和setRightMargin() 。
void QTextBlockFormat::setHeadingLevel(int level)
设置段落的标题level ,其中 1 是最高级别的标题类型(通常具有最大可能的标题字体大小),数值递增则逐渐深入文档(通常具有较小的字体大小)。例如,在阅读 HTML H1 标记时,标题级别被设置为 1。设置标题级别不会自动改变字体大小;但是QTextDocumentFragment::fromHtml() 会同时设置标题级别和字体大小。
如果段落不是标题,级别应设置为 0(默认值)。
另请参阅 headingLevel()。
void QTextBlockFormat::setIndent(int indentation)
设置段落的indentation 。页边距的设置与缩进无关,可使用setLeftMargin() 和setTextIndent() 设置。indentation 是一个整数,它与整个文档的标准缩进相乘,得出段落的实际缩进。
另请参阅 indent() 和QTextDocument::indentWidth()。
void QTextBlockFormat::setLeftMargin(qreal margin)
设置段落左侧的margin 。缩进可通过setIndent() 单独应用。
另请参阅 leftMargin(),setRightMargin(),setTopMargin() 和setBottomMargin().
void QTextBlockFormat::setLineHeight(qreal height, int heightType)
将段落的行高设置为height 给出的值,该值以LineHeightTypes 枚举描述的方式依赖于heightType 。
另请参阅 LineHeightTypes 、lineHeight() 和lineHeightType()。
void QTextBlockFormat::setMarker(QTextBlockFormat::MarkerType marker)
将应与段落一起呈现的装饰类型设置为marker 。例如,列表项可以用选中或未选中的复选框作为装饰,以替代其项目符号。默认值为NoMarker
。
另请参阅 marker() 。
void QTextBlockFormat::setNonBreakableLines(bool b)
如果b 为 true,则段落中的行被视为不可断开;否则为可断开。
另请参见 nonBreakableLines().
void QTextBlockFormat::setPageBreakPolicy(QTextFormat::PageBreakFlags policy)
将段落的分页符设置为policy 。
另请参阅 pageBreakPolicy() 。
void QTextBlockFormat::setRightMargin(qreal margin)
设置段落的右侧margin 。
另请参阅 rightMargin(),setLeftMargin(),setTopMargin() 和setBottomMargin().
void QTextBlockFormat::setTabPositions(const QList<QTextOption::Tab> &tabs)
将文本块的制表符位置设置为tabs 指定的位置。
另请参阅 tabPositions() 。
void QTextBlockFormat::setTextIndent(qreal indent)
设置块中第一行的indent 。这样可以使段落第一行的缩进与其他行不同,从而提高文本的可读性。
另请参阅 textIndent()、setLeftMargin()、setRightMargin()、setTopMargin() 和setBottomMargin()。
void QTextBlockFormat::setTopMargin(qreal margin)
设置段落的顶部margin 。
另请参阅 topMargin()、setBottomMargin()、setLeftMargin() 和setRightMargin() 。
QList<QTextOption::Tab> QTextBlockFormat::tabPositions() const
返回为文本块定义的制表符位置列表。
另请参阅 setTabPositions()。
qreal QTextBlockFormat::textIndent() const
返回段落的文本缩进。
另请参阅 setTextIndent()。
qreal QTextBlockFormat::topMargin() const
返回段落的上边距。
另请参阅 setTopMargin() 和bottomMargin()。
© 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.