QTextFragment 类

QTextFragment 类负责在单个 QTextDocument 中存储文本片段,并使用单个 QTextCharFormat 格式化。有关更多信息,请参阅详细信息

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

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

公共函数

QTextFragment()
QTextFragment(const QTextFragment &other)
QTextCharFormatcharFormat() const
intcharFormatIndex() const
boolcontains(int position) const
QList<QGlyphRun>glyphRuns(int pos = -1, int len = -1) const
boolisValid() const
intlength() const
intposition() const
QStringtext() const
booloperator!=(const QTextFragment &other) const
booloperator<(const QTextFragment &other) const
QTextFragment &operator=(const QTextFragment &other)
booloperator==(const QTextFragment &other) const

详细描述

文本片段描述了一个以单独字符格式存储的文本块。其中字符格式发生变化的文本可以通过具有不同格式的文本片段序列来表示。

如果用户编辑片段中的文本并引入不同的字符格式,片段文本将在格式变化处的每个点进行拆分,并创建新的片段。例如,更改句子中间某些文本的样式将使片段分为三个独立的片段:第一和第三个与之前的格式相同,第二个具有新样式。第一个片段将包含句子的开头文本,第二个包含中间文本,第三个包含句子的末尾文本。

可以使用text()charFormat()函数获取片段的文本和字符格式。函数length()给出片段中文本的长度。函数position()给出片段在文档中的起始位置。要确定该片段是否包含文档中特定位置,请使用contains()函数。

参见QTextDocument富文本文档结构

成员函数文档

QTextFragment::QTextFragment()

创建一个新的空文本片段。

QTextFragment::QTextFragment(const QTextFragment &other)

将其他文本片段的内容(文本和格式)复制到此文本片段。

QTextCharFormat QTextFragment::charFormat() const

返回文本片段的字符格式。

参见text()

int QTextFragment::charFormatIndex() const

返回对文档内部字符格式列表中字符格式索引。

参见QTextDocument::allFormats

bool QTextFragment::contains(int position) const

如果文本片段包含文档中指定位置position的文本,则返回true;否则返回false

QList<QGlyphRun> QTextFragment::glyphRuns(int pos = -1, int len = -1) const

返回从位置pos开始的文本片段中len个字符对应的字符形状。字符形状的位置相对于QTextBlock的布局。

如果pos小于零,它将默认为QTextFragment的开始。如果len小于零,它将默认为片段的长度。

参见QGlyphRunQTextBlock::layoutQTextLayout::positionQPainter::drawGlyphRun

bool QTextFragment::isValid() const

如果这是一个有效的文本片段(即在文档中有有效的位置),则返回true;否则返回false

int QTextFragment::length() const

返回文本片段中字符的数量。

参见text()

int QTextFragment::position() const

返回此文本片段在文档中的位置。

QString QTextFragment::text() const

以纯文本形式返回文本片段。

参见length()charFormat()

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

如果这个文本片段与其他文本片段(在不同位置)不同,则返回 true;否则返回 false。

bool QTextFragment::operator<(const QTextFragment &other) const

如果这个文本片段在文档中比其他文本片段出现得更早,则返回 true;否则返回 false

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

其他文本片段的内容(文本和格式)分配给此文本片段。

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

如果这个文本片段与其他文本片段相同(在相同位置),则返回 true;否则返回 false

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