QTextLine类
QTextLine类表示 QTextLayout 内的一条文本行。更多...
头文件 | #include <QTextLine> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员列表,包括继承的成员
- QTextLine是富文本处理API的一部分。富文本处理API.
注意:此类中所有函数均为可重入的。
公共类型
枚举 | CursorPosition { CursorBetweenCharacters, CursorOnCharacter } |
枚举 | Edge { Leading, Trailing } |
公共函数
QTextLine() | |
qreal | ascent() const |
qreal | cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const |
qreal | cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const |
qreal | descent() const |
void | draw(QPainter *painter, const QPointF &position) const |
(自6.5) QList<QGlyphRun> | glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const |
QList<QGlyphRun> | glyphRuns(int from = -1, int length = -1) const |
qreal | height() const |
qreal | horizontalAdvance() const |
bool | isValid() const |
qreal | leading() const |
bool | leadingIncluded() const |
int | lineNumber() const |
QRectF | naturalTextRect() const |
qreal | naturalTextWidth() const |
QPointF | position() const |
QRectF | rect() const |
void | setLeadingIncluded(bool included) |
void | setLineWidth(qreal width) |
void | setNumColumns(int numColumns) |
void | setNumColumns(int numColumns, qreal alignmentWidth) |
void | setPosition(const QPointF &pos) |
int | textLength() const |
int | textStart() const |
qreal | width() const |
qreal | x() const |
int | xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const |
qreal | y() const |
详细描述
文本行通常是通过QTextLayout::createLine()创建的。
创建后,可以使用setLineWidth()
或setNumColumns()
函数来填充行。一行具有多个属性,包括它占据的矩形rect()
,其坐标x()
和y()
,文本长度textLength
,宽度width
和自然文本宽度naturalTextWidth
,以及与文本的相对位置ascent
和descent
。行的光标位置可以通过cursorToX
()获取,其反函数可通过xToCursor
()获得。可以使用setPosition
()移动一行。
成员类型文档
enum QTextLine::CursorPosition
常量 | 值 |
---|---|
QTextLine::CursorBetweenCharacters | 0 |
QTextLine::CursorOnCharacter | 1 |
enum QTextLine::Edge
常量 | 值 |
---|---|
QTextLine::Leading | 0 |
QTextLine::Trailing | 1 |
成员函数文档
QTextLine::QTextLine()
创建一个无效的行。
qreal QTextLine::ascent() const
返回行的上升。
qreal QTextLine::cursorToX(int *cursorPos, QTextLine::Edge edge = Leading) const
将光标位置cursorPos转换为行内的对应x位置,考虑边距edge。
如果cursorPos不是有效的光标位置,将使用最近的可用光标位置,并将cursorPos修改为指向此有效光标位置。
另请参阅xToCursor。
qreal QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = Leading) const
这是一个重载函数。
qreal QTextLine::descent() const
返回行的下降。
void QTextLine::draw(QPainter *painter, const QPointF &position) const
在给定的painter和指定的position位置上绘制一行。
[since 6.5]
QList<QGlyphRun> QTextLine::glyphRuns(int from, int length, QTextLayout::GlyphRunRetrievalFlags retrievalFlags) const
返回此 QTextLine 中定义为 from 和 length 的范围的字符的所有符号的索引和位置。 from 索引相对于包含 QTextLayout 的文本的开头,并且范围必须在 QTextLine 的范围内,如 textStart() 和 textLength() 函数所给出的。
retrievalFlags 用于指定要从布局中检索哪个 QGlyphRun 属性。为了最小化分配和内存消耗,应设置为仅包括您稍后需要访问的属性。
如果 from 为负,则默认为 textStart(),如果 length 为负,则默认为 textLength() 的返回值。
此函数在 Qt 6.5 中引入。
另请参阅 QTextLayout::glyphRuns。
将 QList<QGlyphRun> QTextLine::glyphRuns(int from = -1, int length = -1) const
这是一个重载函数。
返回此 QTextLine 中定义为 from 和 length 的范围的字符的所有符号的索引和位置。 from 索引相对于包含 QTextLayout 的文本的开头,并且范围必须在 QTextLine 的范围内,如 textStart() 和 textLength() 函数所给出的。
如果 from 为负,则默认为 textStart(),如果 length 为负,则默认为 textLength() 的返回值。
注意: 这等价于调用 glyphRuns(from, length, QTextLayout::GlyphRunRetrievalFlag::GlyphIndexes | QTextLayout::GlyphRunRetrievalFlag::GlyphPositions)。
另请参阅 QTextLayout::glyphRuns。
将 qreal QTextLine::height() const
返回行的行高。如果不包括行首间距,则等于 ascent() + descent()。如果包含行首间距,则等于 ascent() + descent() + leading()。
另请参阅 ascent(),descent(),leading() 和 setLeadingIncluded。
将 qreal QTextLine::horizontalAdvance() const
返回文本的水平位置。文本的进位是指从其位置到下一个自然绘制文本的位置的距离。
通过将进位加到文本行的位置,并将其用作另一行文本的位置,您将能够在两侧没有间隔的情况下定位这两行。
bool QTextLine::isValid() const
如果此文本行是有效的,则返回 true
;否则返回 false
。
将 qreal QTextLine::leading() const
返回行的行首间距。
另请参阅 ascent(),descent() 和 height。
bool QTextLine::leadingIncluded() const
如果行高中包含了正行首间距,则返回 true
;否则返回 false
。
默认情况下,不包含行首间距。
另请参阅 setLeadingIncluded。
int QTextLine::lineNumber() const
返回在文本引擎中行的位置。
QRectF QTextLine::naturalTextRect() const
返回行的覆盖矩形。
qreal QTextLine::naturalTextWidth() const
返回由文本占用的行宽。这始终 <= width(),并且是布局()在没有改变换行位置的情况下可能使用的最小宽度。
QPointF QTextLine::position() const
返回相对于文本布局位置的行位置。
另请参阅setPosition()。
QRectF QTextLine::rect() const
返回行的边界矩形。
另请参阅x(), y(), textLength()和width()。
void QTextLine::setLeadingIncluded(bool included)
如果included为真,则将正行间距包含在行的行高内;否则不包含行间距。
默认情况下,不包含行首间距。
请注意,负行间距将被忽略,必须在代码中使用文本行时处理它,让行重叠。
另请参阅leadingIncluded()。
void QTextLine::setLineWidth(qreal width)
以给定的width布局行。行从其起始位置开始填充,直到填满整行。如果文本在行尾无法分割,则将填充更多的字符到下一个空格或文本的结尾。
void QTextLine::setNumColumns(int numColumns)
布局行。行从其起始位置开始填充,填充了指定的numColumns个字符。如果在numColumns个字符之前文本不能被分割,则行将填充到下一个空格或文本的结尾。
void QTextLine::setNumColumns(int numColumns, qreal alignmentWidth)
布局行。行从其起始位置开始填充,填充指定数量的numColumns个字符。如果在numColumns个字符之前文本不能被分割,则行将填充到下一个空格或文本的结尾。提供的alignmentWidth用作对齐的参考宽度。
void QTextLine::setPosition(const QPointF &pos)
将行移动到位置pos。
另请参阅position()。
int QTextLine::textLength() const
返回行中文本的长度。
另请参阅naturalTextWidth()。
int QTextLine::textStart() const
从传入字符串的起始位置返回到QTextLayout的起始行。
qreal QTextLine::width() const
返回由layout()函数指定的行宽。
另请参阅 naturalTextWidth(),x(),y(),textLength()和rect()。
qreal QTextLine::x() const
返回行的X位置。
另请参阅 rect(),y(),textLength()和width()。
int QTextLine::xToCursor(qreal x, QTextLine::CursorPosition cpos = CursorBetweenCharacters) const
将X坐标x转换为最近的匹配光标位置,具体取决于光标位置类型cpos。注意,结果光标位置包括可能的预编辑区域文本。
另请参阅 cursorToX()。
qreal QTextLine::y() const
返回行的Y位置。
另请参阅 x(),rect(),textLength()和width()。
© 2024 The Qt Company Ltd. 本文档中包含的文档贡献的版权属于其各自的拥有者。本提供的文档是根据由自由软件基金会发布的GNU自由文档许可第1.3版的条款许可。Qt及其相关标志是芬兰和/或其他国家的The Qt Company Ltd的商标。所有其他商标均为其各自所有者的财产。