Spec-Zone.ru › Qt 6.1

Класс QTextBoundaryFinder

Класс QTextBoundaryFinder предоставляет способ нахождения границ текста Юникода в строке. Подробнее...

Заголовок: #include <QTextBoundaryFinder>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно входящими.

Открытые типы

Перечисление BoundaryReason { NotAtBoundary, BreakOpportunity, StartOfItem, EndOfItem, MandatoryBreak, SoftHyphen }
Флаги BoundaryReasons
Перечисление BoundaryType { Графема, Слово, Строка, Предложение }

Открытые функции

QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, QStringView string, unsigned char *buffer = nullptr, qsizetype bufferSize = 0)
QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QChar *chars, qsizetype length, unsigned char *buffer = nullptr, qsizetype bufferSize = 0)
QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QString &string)
QTextBoundaryFinder(const QTextBoundaryFinder &other)
QTextBoundaryFinder()
QTextBoundaryFinder & operator=(const QTextBoundaryFinder &other)
~QTextBoundaryFinder()
QTextBoundaryFinder::BoundaryReasons boundaryReasons() const
bool isAtBoundary() const
bool isValid() const
qsizetype position() const
void setPosition(qsizetype position)
QString string() const
void toEnd()
qsizetype toNextBoundary()
qsizetype toPreviousBoundary()
void toStart()
QTextBoundaryFinder::BoundaryType type() const

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

QTextBoundaryFinder позволяет находить границы текста Юникода в строке в соответствии со спецификацией границ текста Юникода (см. Приложение к стандарту Юникода № 14 и Приложение к стандарту Юникода № 29).

QTextBoundaryFinder может работать со строкой QString в четырёх возможных режимах в зависимости от значения BoundaryType.

Единицы символов Юникода, образующие то, что пользователь воспринимает как символ или основную единицу языка, здесь называются кластерами графем. Например, два символа Юникода 'A' + диэрез образуют один кластер графем, поскольку пользователь воспринимает их как один символ, но в этом случае он представлен двумя кодовыми точками Юникода (см. http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries).

Границы слов предназначены для определения начала и конца того, что язык рассматривает как слово (см. http://www.unicode.org/reports/tr29/#Word_Boundaries).

Границы разрывов строк показывают возможные места, где может произойти разрыв строки, а границы предложений показывают начало и конец целых предложений (см. http://www.unicode.org/reports/tr29/#Sentence_Boundaries и http://www.unicode.org/reports/tr14/).

Первая позиция в строке всегда является допустимой границей и относится к позиции перед первым символом. Последняя позиция в длине строки также допустима и относится к позиции после последнего символа.

Документация по типу члена

перечисление QTextBoundaryFinder::BoundaryReasonфлаги QTextBoundaryFinder::BoundaryReasons

Константа Значение Описание
QTextBoundaryFinder::NotAtBoundary 0 Поиск границ не находится в позиции границы.
QTextBoundaryFinder::BreakOpportunity 0x1f Поиск границ находится в позиции разрыва. Такая возможность разрыва также может быть границей элемента (StartOfItem, EndOfItem или их комбинацией), обязательным разрывом строки или мягким дефисом.
QTextBoundaryFinder::StartOfItem 0x20 С версии 5.0. Поиск границ находится в начале графемы, слова, предложения или строки.
QTextBoundaryFinder::EndOfItem 0x40 С версии 5.0. Поиск границ находится в конце графемы, слова, предложения или строки.
QTextBoundaryFinder::MandatoryBreak 0x80 С версии 5.0. Поиск границ находится в конце строки (может встречаться только для типа границы Line).
QTextBoundaryFinder::SoftHyphen 0x100 Поиск границ находится в позиции мягкого дефиса (может встречаться только для типа границы Line).

Тип BoundaryReasons является типом-псевдонимом для QFlags<BoundaryReason>. Он хранит комбинацию значений BoundaryReason, объединённых операцией OR.

перечисление QTextBoundaryFinder::BoundaryType

Константа Значение Описание
QTextBoundaryFinder::Grapheme 0 Находит графему, которая является самой маленькой границей. Включает буквы, знаки препинания, цифры и многое другое.
QTextBoundaryFinder::Word 1 Находит слово.
QTextBoundaryFinder::Line 3 Находит возможные позиции для разбиения текста на несколько строк.
QTextBoundaryFinder::Sentence 2 Находит границы предложений. Включает точки, вопросительные знаки и т.д.

Документация по функции члена

[since 6.0] QTextBoundaryFinder::QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, QStringView string, unsigned char *buffer = nullptr, qsizetype bufferSize = 0)

Создаёт объект QTextBoundaryFinder типа type, работающий со строкой string.

buffer — это необязательный рабочий буфер размером bufferSize, который можно передать объекту QTextBoundaryFinder. Если буфер достаточно велик, чтобы содержать необходимые рабочие данные (bufferSize >= length + 1), он будет использоваться вместо выделения собственного буфера.

Предупреждение: QTextBoundaryFinder не создаёт копию string. Программисту приложения необходимо убедиться, что массив выделен до тех пор, пока объект QTextBoundaryFinder жив. То же самое относится к buffer.

Эта функция была добавлена в Qt 6.0.

QTextBoundaryFinder::QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QChar *chars, qsizetype length, unsigned char *buffer = nullptr, qsizetype bufferSize = 0)

Это перегруженный метод.

То же самое, что и QTextBoundaryFinder(type, QStringView(chars, length), buffer, bufferSize).

QTextBoundaryFinder::QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QString &string)

Создаёт объект QTextBoundaryFinder типа type, работающий со строкой string.

QTextBoundaryFinder::QTextBoundaryFinder(const QTextBoundaryFinder &other)

Копирует объект QTextBoundaryFinder, other.

QTextBoundaryFinder::QTextBoundaryFinder()

Конструирует недопустимый объект QTextBoundaryFinder.

QTextBoundaryFinder &QTextBoundaryFinder::operator=(const QTextBoundaryFinder &other)

Присваивает объект other другому объекту QTextBoundaryFinder.

QTextBoundaryFinder::~QTextBoundaryFinder()

Деструктор объекта QTextBoundaryFinder.

QTextBoundaryFinder::BoundaryReasons QTextBoundaryFinder::boundaryReasons() const

Возвращает причины, по которым поиск границ установил текущую позицию как границу.

bool QTextBoundaryFinder::isAtBoundary() const

Возвращает true если текущая позиция объекта position() находится на границе текста.

bool QTextBoundaryFinder::isValid() const

Возвращает true если поиск границ текста валиден; в противном случае возвращает false. По умолчанию объект QTextBoundaryFinder невалиден.

qsizetype QTextBoundaryFinder::position() const

Возвращает текущую позицию объекта QTextBoundaryFinder.

Диапазон от 0 (начало строки) до длины строки включительно.

См. также setPosition().

void QTextBoundaryFinder::setPosition(qsizetype position)

Устанавливает текущую позицию объекта QTextBoundaryFinder в position.

Если position находится вне границ, она будет ограничена допустимыми позициями. В этом случае допустимые позиции — от 0 до длины строки включительно.

См. также position().

QString QTextBoundaryFinder::string() const

Возвращает строку, с которой работает объект QTextBoundaryFinder.

void QTextBoundaryFinder::toEnd()

Перемещает поиск до конца строки. Эквивалентно setPosition(string.length()).

См. также setPosition() и position().

qsizetype QTextBoundaryFinder::toNextBoundary()

Перемещает QTextBoundaryFinder к следующей позиции границы и возвращает её.

Возвращает -1, если нет следующей границы.

qsizetype QTextBoundaryFinder::toPreviousBoundary()

Перемещает QTextBoundaryFinder к предыдущей позиции границы и возвращает её.

Возвращает -1, если нет предыдущей границы.

void QTextBoundaryFinder::toStart()

Перемещает поиск к началу строки. Эквивалентно setPosition(0).

См. также setPosition() и position().

QTextBoundaryFinder::BoundaryType QTextBoundaryFinder::type() const

Возвращает тип объекта QTextBoundaryFinder.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtextboundaryfinder.html

Spec-Zone.ru

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