Класс QTextLine
Класс QTextLine представляет строку текста внутри QTextLayout. Подробнее...
| Заголовок: | #include <QTextLine> |
| qmake: | QT += gui |
Примечание: Все функции в этом классе являются реентерабельными.
Типы общедоступного доступа
| Перечисление | CursorPosition { CursorBetweenCharacters, CursorOnCharacter } |
| Перечисление | Edge { Leading, Trailing } |
Общедоступные функции
| QTextLine() | |
| qreal | ascent() const |
| qreal | cursorToX(int *cursorPos, Edge edge = Leading) const |
| qreal | cursorToX(int cursorPos, Edge edge = Leading) const |
| qreal | descent() const |
| void | draw(QPainter *painter, const QPointF &position, const QTextLayout::FormatRange *selection = Q_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, CursorPosition cpos = CursorBetweenCharacters) 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, Edge edge = Leading) const
Преобразует позицию курсора cursorPos в соответствующую позицию x внутри строки, учитывая edge.
Если cursorPos не является допустимой позицией курсора, будет использоваться ближайшая допустимая позиция курсора, и cursorPos будет изменен для указания на эту допустимую позицию курсора.
См. также xToCursor().
qreal QTextLine::cursorToX(int cursorPos, Edge edge = Leading) const
Это перегруженная функция.
qreal QTextLine::descent() const
Возвращает нисходящую часть строки.
См. также ascent() и height().
void QTextLine::draw(QPainter *painter, const QPointF &position, const QTextLayout::FormatRange *selection = Q_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().
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, 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.9/qtextline.html