Класс QTextLine
Класс QTextLine представляет собой строку текста внутри объекта QTextLayout. Подробнее...
| Заголовок: | #include <QTextLine> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются реентерабельными.
Открытые типы
| Перечисление | CursorPosition { КурсорМеждуСимволами, КурсорНаСимволе } |
| Перечисление | Edge { ЛевыйКрай, ПравыйКрай } |
Открытые функции
| QTextLine() | |
| qreal | ascent() const |
| qreal | cursorToX(int *cursorPos, QTextLine::Edge edge = ЛевыйКрай) const |
| qreal | cursorToX(int cursorPos, QTextLine::Edge edge = ЛевыйКрай) 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 = КурсорМеждуСимволами) const |
| qreal | y() const |
Подробное описание
Класс QTextLine представляет собой строку текста внутри объекта QTextLayout.
Строка текста обычно создается функцией 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 = ЛевыйКрай) const
Преобразует позицию курсора cursorPos в соответствующую позицию x в строке, учитывая edge.
Если cursorPos не является валидной позицией курсора, будет использоваться ближайшая валидная позиция курсора, а cursorPos будет изменён на указание этой валидной позиции.
См. также xToCursor().
qreal QTextLine::cursorToX(int cursorPos, QTextLine::Edge edge = ЛевыйКрай) 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().
END_OF_DOCUMENT_MARKERЭта функция была добавлена в Qt 5.0.
См. также QTextLayout::glyphRuns().
qreal QTextLine::height() const
Возвращает высоту строки. Она равна ascent() + descent() если отступ не включён. Если отступ включён, она равна ascent() + descent() + leading().
См. также ascent(), descent(), leading() и setLeadingIncluded().
qreal QTextLine::horizontalAdvance() const
Возвращает горизонтальный отступ текста. Отступ текста — это расстояние от его позиции до следующей позиции, в которой текст будет естественным образом нарисован.
Добавив отступ к позиции строки текста и используя её в качестве позиции второй строки текста, вы сможете расположить две строки рядом без промежутков.
Эта функция была добавлена в Qt 4.7.
bool QTextLine::isValid() const
Возвращает true , если строка текста валидна; в противном случае возвращает false.
qreal QTextLine::leading() const
Возвращает отступ строки.
Эта функция была добавлена в 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.12/qtextline.html