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