Sur cette page

QTextBoundaryFinder Class

La classe QTextBoundaryFinder permet de trouver les limites d'un texte Unicode dans une chaîne de caractères. Plus d'informations...

En-tête : #include <QTextBoundaryFinder>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Note : Toutes les fonctions de cette classe sont réentrantes.

Types publics

enum BoundaryReason { NotAtBoundary, BreakOpportunity, StartOfItem, EndOfItem, MandatoryBreak, SoftHyphen }
flags BoundaryReasons
enum BoundaryType { Grapheme, Word, Line, Sentence }

Fonctions publiques

QTextBoundaryFinder()
QTextBoundaryFinder(QTextBoundaryFinder::BoundaryType type, const QString &string)
(since 6.0) 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(const QTextBoundaryFinder &other)
(since 6.11) QTextBoundaryFinder(QTextBoundaryFinder &&other)
~QTextBoundaryFinder()
QTextBoundaryFinder::BoundaryReasons boundaryReasons() const
bool isAtBoundary() const
bool isValid() const
qsizetype position() const
void setPosition(qsizetype position)
QString string() const
(since 6.11) void swap(QTextBoundaryFinder &other)
void toEnd()
qsizetype toNextBoundary()
qsizetype toPreviousBoundary()
void toStart()
QTextBoundaryFinder::BoundaryType type() const
(since 6.11) QTextBoundaryFinder &operator=(QTextBoundaryFinder &&other)
QTextBoundaryFinder &operator=(const QTextBoundaryFinder &other)

Description détaillée

QTextBoundaryFinder permet de trouver les limites d'un texte Unicode dans une chaîne de caractères, conformément à la spécification des limites de texte Unicode (voir l'annexe 14 et l'annexe 29 du standard Unicode).

QTextBoundaryFinder peut opérer sur QString selon quatre modes possibles en fonction de la valeur de BoundaryType.

Les unités de caractères Unicode qui constituent ce que l'utilisateur considère comme un caractère ou une unité de base de la langue sont appelées ici groupes de graphèmes. Les deux caractères Unicode 'A' + tréma forment par exemple un groupe de graphèmes car l'utilisateur les considère comme un seul caractère, bien qu'il soit dans ce cas représenté par deux points de code Unicode ( voir https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries).

Les limites des mots sont là pour situer le début et la fin de ce qu'une langue considère comme un mot ( voir https://www.unicode.org/reports/tr29/#Word_Boundaries).

Les limites des sauts de ligne indiquent les endroits où un saut de ligne peut se produire et les limites des phrases indiquent le début et la fin des phrases entières ( voir https://www.unicode.org/reports/tr29/#Sentence_Boundaries et https://www.unicode.org/reports/tr14/).

La première position dans une chaîne de caractères est toujours une limite valide et se réfère à la position avant le premier caractère. La dernière position de la longueur de la chaîne est également valide et se réfère à la position après le dernier caractère.

Documentation des types de membres

enum QTextBoundaryFinder::BoundaryReason
flags QTextBoundaryFinder::BoundaryReasons

ConstanteValeurDescription
QTextBoundaryFinder::NotAtBoundary0L'outil de recherche de limite n'est pas à une position de limite.
QTextBoundaryFinder::BreakOpportunity0x1fL'outil de recherche de frontière se trouve à une position d'opportunité de rupture. Une telle occasion de rupture peut également être une limite d'élément (soit StartOfItem, EndOfItem, ou une combinaison des deux), un saut de ligne obligatoire, ou un trait d'union souple.
QTextBoundaryFinder::StartOfItem (since Qt 5.0)0x20Le détecteur de frontières se trouve au début d'un graphème, d'un mot, d'une phrase ou d'une ligne.
QTextBoundaryFinder::EndOfItem (since Qt 5.0)0x40Le détecteur de frontières se trouve à la fin d'un graphème, d'un mot, d'une phrase ou d'une ligne.
QTextBoundaryFinder::MandatoryBreak (since Qt 5.0)0x80Le localisateur de frontières se trouve à la fin de la ligne (ne peut se produire que pour un type de frontière "ligne").
QTextBoundaryFinder::SoftHyphen0x100L'indicateur de délimitation se trouve à la fin d'un trait d'union souple (ne peut se produire que pour un type de délimitation Line).

Le type BoundaryReasons est un typedef pour QFlags<BoundaryReason>. Il stocke une combinaison OR de valeurs BoundaryReason.

enum QTextBoundaryFinder::BoundaryType

ConstanteValeurDescription
QTextBoundaryFinder::Grapheme0Recherche un graphème dont la limite est la plus petite. Cela inclut les lettres, les signes de ponctuation, les chiffres et bien d'autres choses encore.
QTextBoundaryFinder::Word1Recherche un mot.
QTextBoundaryFinder::Line3Recherche les positions possibles pour diviser le texte en plusieurs lignes.
QTextBoundaryFinder::Sentence2Trouve les limites d'une phrase. Celles-ci comprennent les points, les points d'interrogation, etc.

Documentation des fonctions membres

QTextBoundaryFinder::QTextBoundaryFinder()

Construit un objet QTextBoundaryFinder invalide.

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

Crée un objet QTextBoundaryFinder de type opérant sur string.

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

Crée un objet QTextBoundaryFinder de type fonctionnant sur string.

buffer est un tampon de travail optionnel de taille bufferSize que vous pouvez passer au QTextBoundaryFinder. Si le tampon est suffisamment grand pour contenir les données de travail requises (bufferSize >= length + 1), il l'utilisera au lieu d'allouer son propre tampon.

Attention : QTextBoundaryFinder ne crée pas de copie de string. Il incombe au programmeur de l'application de s'assurer que le tableau est alloué tant que l'objet QTextBoundaryFinder reste en vie. Il en va de même pour buffer.

Cette fonction a été introduite dans Qt 6.0.

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

Identique à QTextBoundaryFinder(type, QStringView(chars, length), buffer, bufferSize).

Il s'agit d'une fonction surchargée.

QTextBoundaryFinder::QTextBoundaryFinder(const QTextBoundaryFinder &other)

Copie l'objet QTextBoundaryFinder, other.

[noexcept, since 6.11] QTextBoundaryFinder::QTextBoundaryFinder(QTextBoundaryFinder &&other)

Move-construit un nouveau QTextBoundaryFinder à partir de other.

Note : L'objet other déplacé est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'assignation d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.11.

[noexcept] QTextBoundaryFinder::~QTextBoundaryFinder()

Détruit l'objet QTextBoundaryFinder.

QTextBoundaryFinder::BoundaryReasons QTextBoundaryFinder::boundaryReasons() const

Renvoie les raisons pour lesquelles l'outil de recherche de limites a choisi la position actuelle comme limite.

bool QTextBoundaryFinder::isAtBoundary() const

Renvoie true si l'objet position() se trouve actuellement à la limite d'un texte valide.

bool QTextBoundaryFinder::isValid() const

Renvoie true si l'outil de recherche de limites de texte est valide ; sinon, il renvoie false. La valeur par défaut QTextBoundaryFinder n'est pas valide.

qsizetype QTextBoundaryFinder::position() const

Renvoie la position actuelle de QTextBoundaryFinder.

La plage est comprise entre 0 (le début de la chaîne) et la longueur de la chaîne incluse.

Voir aussi setPosition().

void QTextBoundaryFinder::setPosition(qsizetype position)

Fixe la position actuelle de QTextBoundaryFinder à position.

Si position est hors limites, il ne sera lié qu'aux positions valides. Dans ce cas, les positions valides sont comprises entre 0 et la longueur de la chaîne incluse.

Voir aussi position().

QString QTextBoundaryFinder::string() const

Renvoie la chaîne de caractères sur laquelle l'objet QTextBoundaryFinder opère.

[noexcept, since 6.11] void QTextBoundaryFinder::swap(QTextBoundaryFinder &other)

Remplace ce détecteur de limites de texte par other. Cette opération est très rapide et n'échoue jamais.

Cette fonction a été introduite dans Qt 6.11.

void QTextBoundaryFinder::toEnd()

Déplace le chercheur à la fin de la chaîne. Ceci est équivalent à setPosition(string.length()).

Voir aussi setPosition() et position().

qsizetype QTextBoundaryFinder::toNextBoundary()

Déplace le site QTextBoundaryFinder à la position suivante de la frontière et renvoie cette position.

Retourne -1 s'il n'y a pas de frontière suivante.

qsizetype QTextBoundaryFinder::toPreviousBoundary()

Déplace le site QTextBoundaryFinder à la position de la limite précédente et renvoie cette position.

Retourne -1 s'il n'y a pas de frontière précédente.

void QTextBoundaryFinder::toStart()

Déplace le chercheur au début de la chaîne. Cela équivaut à setPosition(0).

Voir aussi setPosition() et position().

QTextBoundaryFinder::BoundaryType QTextBoundaryFinder::type() const

Renvoie le type de l'adresse QTextBoundaryFinder.

[noexcept, since 6.11] QTextBoundaryFinder &QTextBoundaryFinder::operator=(QTextBoundaryFinder &&other)

Move-attribue other à cette instance QTextBoundaryFinder.

Remarque : l'objet other déplacé est placé dans un état partiellement formé, dans lequel les seules opérations valables sont la destruction et l'attribution d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.11.

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

Affecte l'objet other à un autre objet QTextBoundaryFinder.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.