Класс 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 { Grapheme, Word, Line, Sentence } |
Функции публичного доступа
| 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» + диэрезис образуют один кластер графем, так как пользователь воспринимает их как один символ, но в данном случае они представлены двумя точками кода Юникода (см. https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries).
Границы слов служат для определения начала и конца того, что язык считает словом (см. https://www.unicode.org/reports/tr29/#Word_Boundaries).
Границы переноса строк показывают возможные места, где может произойти перенос строки, а границы предложений показывают начало и конец целых предложений (см. https://www.unicode.org/reports/tr29/#Sentence_Boundaries и https://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. Поиск границ находится в конце строки (может произойти только для типа границы строки). |
QTextBoundaryFinder::SoftHyphen |
0x100 |
Поиск границ находится в позиции мягкого дефиса (может произойти только для типа границы строки). |
Тип BoundaryReasons является псевдонимом для QFlags<BoundaryReason>. Он хранит логическое ИЛИ сочетание значений BoundaryReason.
Перечисление 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 >= длина + 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.2/qtextboundaryfinder.html