Класс QTextLine
Класс QTextLine представляет строку текста внутри QTextLayout. Подробнее...
| Заголовок: | #include <QTextLine> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются перевключенными.
Типы public
| перечисление | CursorPosition { CursorBetweenCharacters, CursorOnCharacter } |
| перечисление | Edge { Leading, Trailing } |
Функции public
| 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 |
| 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
Рисует строку на заданном painter в указанной position.
[since 5.0] 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() если отступ не включён. Если отступ включён, то он равен 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(), и представляет собой минимальную ширину, которая может быть использована методом layout() без изменения позиции разрыва строки.
QPointF QTextLine::position() const
Возвращает позицию строки относительно позиции макета текста.
См. также setPosition().
QRectF QTextLine::rect() const
Возвращает ограничивающий прямоугольник строки.
См. также x(), y(), textLength() и width().
void QTextLine::setLeadingIncluded(bool included)
Включает положительный отступ в высоту строки, если included имеет значение true; в противном случае отступ не включается.
По умолчанию отступ не включён.
Обратите внимание, что отрицательный отступ игнорируется; его необходимо обрабатывать в коде, использующем строки текста, позволяя строкам перекрываться.
См. также 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-6.0/qtextline.html