Класс 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().
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.15/qtextline.html