QTextBlock类
The QTextBlock class provides a container for text fragments in a QTextDocument. More...
头文件 | #include <QTextBlock> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员列表,包括继承成员
- QTextBlock是富文本处理API的一部分。
注意:本类中所有函数都是可重入的。
公共类型
公共函数
QTextBlock(const QTextBlock &other) | |
QTextBlock::iterator | begin() const |
QTextBlockFormat | blockFormat() const |
int | blockFormatIndex() const |
int | blockNumber() const |
QTextCharFormat | charFormat() const |
int | charFormatIndex() const |
void | clearLayout() |
bool | contains(int position) const |
const QTextDocument * | document() const |
QTextBlock::iterator | end() const |
int | firstLineNumber() const |
bool | isValid() const |
bool | isVisible() const |
QTextLayout * | layout() const |
int | length() const |
int | lineCount() const |
QTextBlock | next() const |
int | position() const |
QTextBlock | previous() const |
int | revision() const |
void | setLineCount(int count) |
void | setRevision(int rev) |
void | setUserData(QTextBlockUserData *data) |
void | setUserState(int state) |
void | setVisible(bool visible) |
QString | text() const |
Qt::LayoutDirection | textDirection() const |
QList<QTextLayout::FormatRange> | textFormats() const |
QTextList * | textList() const |
QTextBlockUserData * | userData() const |
int | userState() const |
bool | operator!=(const QTextBlock &other) const |
bool | 运算符<(const QTextBlock &other) const |
QTextBlock & | 运算符=(const QTextBlock &other) |
bool | 运算符==(const QTextBlock &other) const |
详细说明
文本块封装了QTextDocument中的文本块或段落。QTextBlock提供了对QTextDocuments的块/段落结构的只读访问。当您需要实现自己用于可视化表示的QTextDocument的自定义布局,或者您想要遍历文档并将内容以您自己的自定义格式写出时,它非常有用。
文本块由其父文档创建。如果您需要创建新的文本块或修改文档的内容,同时查看其内容,请使用QTextCursor提供的基于光标的界面。
每个文本块在文档中的特定位置()处。可以使用text()函数获取块的内容。使用length()函数确定块在文档中的大小(包括格式化字符)。块的可视属性由其文本布局()、其字符格式和其块格式()决定。
next()和previous()函数使迭代在迭代过程中不通过其他方式修改文档的条件下,有效遍历文档中连续的块成为可能。注意,尽管块是按顺序返回的,但相邻的块可能来自文档结构的不同位置。可以通过调用isValid()来判定块的有效性。
QTextBlock提供比较运算符以便更容易地处理块:operator==()比较两个块的相等性,operator!=()比较两个块的不等性,而operator<()则确定一个块是否在前一个块之前。
参阅QTextBlockFormat、QTextCharFormat和QTextFragment。
成员函数文档
QTextBlock::QTextBlock(const QTextBlock &other)
将other文本块的属性复制到本文本块。
QTextBlock::iterator QTextBlock::begin() const
返回指向文本块开始的文本块迭代器。
参阅end。
QTextBlockFormat QTextBlock::blockFormat() const
返回描述块特定属性的QTextBlockFormat。
参阅charFormat。
int QTextBlock::blockFormatIndex() const
返回文本块的格式在文档内部格式列表中的索引。
另请参阅 QTextDocument::allFormats。
int QTextBlock::blockNumber() const
返回此块的编号,如果块无效,则返回 -1。
另请参阅 QTextCursor::blockNumber。
QTextCharFormat QTextBlock::charFormat() const
返回描述块字符格式的 QTextCharFormat。块字符格式在将文本插入到空块时使用。
另请参阅 blockFormat。
int QTextBlock::charFormatIndex() const
返回文本块字符格式在文档内部字符格式列表中的索引。
另请参阅 QTextDocument::allFormats。
void QTextBlock::clearLayout()
清除用于布局和显示块内容的 QTextLayout。
另请参阅 layout。
bool QTextBlock::contains(int position) const
如果给出的 position 位于文本块内,则返回 true
;否则返回 false
。
const QTextDocument *QTextBlock::document() const
返回此文本块所属的文本文档,如果文本块不属于任何文档,则返回 nullptr
。
QTextBlock::iterator QTextBlock::end() const
返回指向文本块末尾的文本块迭代器。
另请参阅 begin(), next() 和 previous。
int QTextBlock::firstLineNumber() const
返回此块的行号,如果块无效,则返回 -1。除非布局支持它,否则行号与块编号相同。
另请参阅 QTextBlock::blockNumber。
bool QTextBlock::isValid() const
如果此文本块有效,则返回 true
;否则返回 false
。
bool QTextBlock::isVisible() const
如果块可见,则返回 true
;否则返回 false
。
另请参阅 setVisible。
QTextLayout *QTextBlock::layout() const
返回用于布局和显示块内容的 QTextLayout。
请注意,返回的QTextLayout对象只能从QAbstractTextDocumentLayout子类的documentChanged实现中修改。从外部应用任何更改可能会导致未定义的行为。
另请参阅clearLayout。
int QTextBlock::length() const
返回块的字符长度。
注意:返回的长度包括所有格式化字符,例如换行符。
另请参阅text,charFormat和blockFormat。
int QTextBlock::lineCount() const
返回行数。并非所有文档布局都支持此功能。
另请参阅setLineCount。
QTextBlock QTextBlock::next() const
返回文档中此块之后的文本块,如果这是最后一个的话,则返回空文本块。
注意,下一个块可能位于与当前块不同的框架或表格中。
int QTextBlock::position() const
返回块第一个字符在文档中的索引。
QTextBlock QTextBlock::previous() const
返回文档中此块之前的文本块,如果这是第一个的话,则返回空文本块。
注意,上一个块可能位于与当前块不同的框架或表格中。
int QTextBlock::revision() const
返回块的修订版本。
另请参阅setRevision和QTextDocument::revision。
void QTextBlock::setLineCount(int count)
将行数设置为count。
另请参阅lineCount。
void QTextBlock::setRevision(int rev)
将块的修订版本设置为rev。
另请参阅revision和QTextDocument::revision。
void QTextBlock::setUserData(QTextBlockUserData *data)
将给定的data对象附加到文本块。
QTextBlockUserData可用于存储自定义设置。所有权传递给底层文本文档,即提供的QTextBlockUserData对象如果对应的文本块被删除,也将被删除。用户数据对象不存储在撤消历史记录中,因此撤消文本块删除后将不可用。
例如,如果您在一个IDE中编写编程编辑器,您可能希望让用户能够以可视方式在代码中设置断点以进行集成调试。在一个编程编辑器中,一行文本通常对应于一个QTextBlock。该QTextBlockUserData接口允许开发者为每个QTextBlock存储数据,例如用户在哪些源代码行设置了断点。当然,这些数据也可以存储在外部,但是将数据存储在QTextDocument中,例如当用户删除相关行时,它将自动被删除。这实际上是一种在QTextDocument中存储自定义信息的方法,而不使用会影响撤销/重做堆栈的QTextFormat中的自定义属性。
另请参阅:userData(用户数据)。
void QTextBlock::setUserState(int state)
将指定的state整数值存储在文本块中。这对于例如在语法着色器中存储文本解析状态可能很有用。
另请参阅:userState(用户状态)。
void QTextBlock::setVisible(bool visible)
将块的可见性设置为visible。
另请参阅:isVisible(是否可见)。
QString QTextBlock::text() const
以纯文本形式返回块的正文内容。
另请参阅:length(长度),charFormat(字符格式)和blockFormat(块格式)。
Qt::LayoutDirection QTextBlock::textDirection() const
返回解析后的文本方向。
如果没有为块设置显式方向,则将从内容中解析方向。返回Qt::LeftToRight或Qt::RightToLeft之一。
另请参阅:QTextFormat::layoutDirection(布局方向),QString::isRightToLeft(是否从右到左)和Qt::LayoutDirection(布局方向)。
QList<QTextLayout::FormatRange> QTextBlock::textFormats() const
返回块的文本格式选项列表,作为一系列QTextCharFormat的连续范围。当在范围边界内插入文本时,使用范围字符格式。
另请参阅:charFormat(字符格式)和blockFormat(块格式)。
QTextList *QTextBlock::textList() const
如果该块表示列表项,则返回该项所属的列表;否则返回nullptr
。
QTextBlockUserData *QTextBlock::userData() const
返回一个指向QTextBlockUserData对象的指针,如果使用setUserData设置了该对象,则为非空指针。
也参阅 setUserData()。
int QTextBlock::userState() const
返回之前使用 setUserState() 设置的整数值,否则返回 -1。
也参阅 setUserState()。
bool QTextBlock::operator!=(const QTextBlock &other) const
如果此文本块与指定的文本块不同,则返回 true
。
bool QTextBlock::operator<(const QTextBlock &other) const
如果此文本块在文档中位于指定的文本块之前,则返回 true
。
QTextBlock &QTextBlock::operator=(const QTextBlock &other)
将指定的文本块赋值给当前文本块。
bool QTextBlock::operator==(const QTextBlock &other) const
如果此文本块与指定的文本块相同,则返回 true
。
© 2024 The Qt Company Ltd. 本文档中的贡献版权属于各自的拥有者。本提供的文档是在自由软件基金会发布并由其根据 GNU 自由文档许可协议版本 1.3 的条款下许可的。Qt 以及相应的商标是 The Qt Company Ltd. 在芬兰及其他国家/地区的商标。所有其他商标属于其各自的所有者。