Класс QTextLine
Класс QTextLine представляет собой строку текста внутри QTextLayout. Подробнее...
| Заголовок: | #include <QTextLine> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются реентерабельными.
Типы
| Перечисление | 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 QTextLayout::FormatRange *selection = nullptr) 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().
Документация по типам членов
Перечисление QTextLine::CursorPosition
| Константа | Значение |
|---|---|
QTextLine::CursorBetweenCharacters |
0 |
QTextLine::CursorOnCharacter |
1 |
Перечисление QTextLine::Edge
| Константа | Значение |
|---|---|
QTextLine::Leading |
0 |
QTextLine::Trailing |
1 |
Документация по функциям-членам
QTextLine::QTextLine()
Создает недопустимую строку.
qreal QTextLine::ascent() const
Возвращает восходящую часть строки.
См. также descent() и height().
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
Возвращает нисходящую часть строки.
См. также ascent() и height().
void QTextLine::draw(QPainter *painter, const QPointF &position, const QTextLayout::FormatRange *selection = nullptr) const
Рисует строку на заданном painter в указанном position. Параметр selection предназначен для внутреннего использования.
QList<QGlyphRun> QTextLine::glyphRuns(int from = -1, int length = -1) const
Возвращает индексы и позиции глифов для всех глифов в этой строке QTextLine для символов в диапазоне, определенном from и length. Индекс from относится к началу текста в содержащем QTextLayout, а диапазон должен находиться в пределах строки QTextLine, как указано функциями textStart() и textLength().
Если from отрицательно, он будет по умолчанию равен textStart(), а если length отрицательно, он будет по умолчанию равен значению textLength().
Эта функция была добавлена в Qt 5.0.
См. также QTextLayout::glyphRuns().
END_OF_DOCUMENT_MARKERqreal QTextLine::height() const
Возвращает высоту строки. Она равна ascent() + descent() если отступ (leading) не включен. Если отступ включен, она равна ascent() + descent() + leading().
См. также ascent(), descent(), leading(), и setLeadingIncluded().
qreal QTextLine::horizontalAdvance() const
Возвращает горизонтальное смещение текста. Смещение текста — это расстояние от его позиции до следующей позиции, где естественным образом будет нарисован текст.
Добавив смещение к позиции строки текста и используя эту сумму как позицию второй строки текста, вы сможете расположить две строки рядом друг с другом без пробелов между ними.
Эта функция была добавлена в Qt 4.7.
bool QTextLine::isValid() const
Возвращает true если эта строка текста является валидной; в противном случае возвращает false.
qreal QTextLine::leading() const
Возвращает отступ (leading) строки.
Эта функция была добавлена в Qt 4.6.
См. также ascent(), descent(), и height().
bool QTextLine::leadingIncluded() const
Возвращает true если положительный отступ включён в высоту строки; в противном случае возвращает false.
По умолчанию отступ не включён.
Эта функция была добавлена в Qt 4.6.
См. также setLeadingIncluded().
int QTextLine::lineNumber() const
Возвращает позицию строки в движке текста.
QRectF QTextLine::naturalTextRect() const
Возвращает прямоугольник, занимаемый строкой.
qreal QTextLine::naturalTextWidth() const
Возвращает ширину строки, занимаемой текстом. Она всегда <= width(), и является минимальной шириной, которая может быть использована функцией layout() без изменения позиции разрыва строки.
QPointF QTextLine::position() const
Возвращает позицию строки относительно позиции макета текста.
См. также setPosition().
QRectF QTextLine::rect() const
Возвращает ограничивающий прямоугольник строки.
См. также x(), y(), textLength(), и width().
void QTextLine::setLeadingIncluded(bool included)
Включает положительный отступ в высоту строки, если included равно true; в противном случае отступ не включается.
По умолчанию отступ не включён.
Обратите внимание, что отрицательный отступ игнорируется; его необходимо обрабатывать в коде, использующем строки текста, позволяя строкам перекрываться.
Эта функция была добавлена в Qt 4.6.
См. также 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().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qtextline.html