Spec-Zone.ru › Qt 5.11

Класс 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

Подробное описание

Класс 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 = 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().

END_OF_DOCUMENT_MARKER

Если 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/archives/qt-5.11/qtextline.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API