Sur cette page

QTextBoundaryFinder Class

La classe QTextBoundaryFinder permet de détecter les limites de texte Unicode dans une chaîne de caractères. En savoir plus...

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

Remarque : 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 détecter les limites de texte Unicode dans une chaîne, conformément à la spécification relative aux limites de texte Unicode (voir l'annexe n° 14 et l'annexe n° 29 de la norme Unicode).

QTextBoundaryFinder peut opérer sur une chaîne de caractères ( QString ) selon quatre modes possibles, en fonction de la valeur de l'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 ici appelées « grappes 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’ils soient dans ce cas représentés par deux points de code Unicode (voir https://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries).

Les limites de mot servent à localiser 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 de saut de ligne indiquent les emplacements possibles où un saut de ligne pourrait se produire, tandis que les limites de phrase indiquent le début et la fin de phrases entières (voir https://www.unicode.org/reports/tr29/#Sentence_Boundaries et https://www.unicode.org/reports/tr14/).

La première position d’une chaîne est toujours une limite valide et correspond à la position précédant le premier caractère. La dernière position, correspondant à la fin de la chaîne, est également valide et correspond à la position suivant le dernier caractère.

Documentation sur les types de membres

enum QTextBoundaryFinder::BoundaryReason
flags QTextBoundaryFinder::BoundaryReasons

ConstanteValeurDescription
QTextBoundaryFinder::NotAtBoundary0Le détecteur de limite ne se trouve pas à une position de limite.
QTextBoundaryFinder::BreakOpportunity0x1fLe détecteur de limite se trouve à une position de rupture potentielle. Une telle rupture potentielle peut également correspondre à une limite d'élément (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 limite 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 limite 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 détecteur de limite se trouve à la fin d’une ligne (cela ne peut se produire que pour le type de limite « Ligne »).
QTextBoundaryFinder::SoftHyphen0x100Le détecteur de limite se trouve au niveau du trait d’union (cela ne peut se produire que pour le type de limite « Ligne »).

Le type `BoundaryReasons` est une définition de type pour `QFlags<BoundaryReason>`. Il stocke une combinaison OU de valeurs `BoundaryReason`.

enum QTextBoundaryFinder::BoundaryType

ConstanteValeurDescription
QTextBoundaryFinder::Grapheme0Recherche un graphème constituant la plus petite unité. Cela inclut les lettres, les signes de ponctuation, les chiffres et bien plus encore.
QTextBoundaryFinder::Word1Recherche un mot.
QTextBoundaryFinder::Line3Recherche les emplacements possibles pour couper le texte en plusieurs lignes.
QTextBoundaryFinder::Sentence2Recherche les limites de phrase. Celles-ci incluent les points, les points d'interrogation, etc.

Documentation des fonctions membres

QTextBoundaryFinder::QTextBoundaryFinder()

Crée un objet `QTextBoundaryFinder` non valide.

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

Crée un objet `QTextBoundaryFinder` de type ` type ` fonctionnant 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 ` type ` agissant sur un ` string`.

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

Avertissement : QTextBoundaryFinder ne crée pas de copie de string. Il incombe au programmeur de s'assurer que le tableau reste alloué tant que l'objet QTextBoundaryFinder est actif. 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)

Equivalent à 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)

La fonction `move` construit un nouvel objet `QTextBoundaryFinder` à partir de ` other`.

Remarque : l'objet « other », à partir duquel le déplacement a été effectué, est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation 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 la méthode ` position()` de l'objet se trouve actuellement à une limite de texte valide.

bool QTextBoundaryFinder::isValid() const

Renvoie « true » si le détecteur de limites de texte est valide ; sinon, renvoie « false ». Par défaut, « QTextBoundaryFinder » n'est pas valide.

qsizetype QTextBoundaryFinder::position() const

Renvoie la position actuelle de l'QTextBoundaryFinder.

La plage va de 0 (le début de la chaîne) à la longueur de la chaîne, incluse.

Voir aussi setPosition().

void QTextBoundaryFinder::setPosition(qsizetype position)

Définit la position actuelle de l'QTextBoundaryFinder sur position.

Si ` position ` est hors limites, il sera limité aux seules positions valides. Dans ce cas, les positions valides vont de 0 à la longueur de la chaîne, incluse.

Voir également position().

QString QTextBoundaryFinder::string() const

Renvoie la chaîne sur laquelle porte l'objet ` QTextBoundaryFinder `.

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

Remplace cet outil de détection des limites de texte par other. Cette opération est très rapide et ne rencontre jamais d'échec.

Cette fonction a été introduite dans Qt 6.11.

void QTextBoundaryFinder::toEnd()

Déplace le curseur à la fin de la chaîne. Cela revient à utiliser la méthode « setPosition » (string.length()).

Voir également setPosition() et position().

qsizetype QTextBoundaryFinder::toNextBoundary()

Déplace l'QTextBoundaryFinder e vers la position de limite suivante et renvoie cette position.

Renvoie -1 s'il n'y a pas de limite suivante.

qsizetype QTextBoundaryFinder::toPreviousBoundary()

Déplace l'QTextBoundaryFinder e vers la position de limite précédente et renvoie cette position.

Renvoie -1 s'il n'y a pas de limite précédente.

void QTextBoundaryFinder::toStart()

Place le curseur au début de la chaîne. Cela revient à utiliser la fonction ` setPosition(0)`.

Voir également setPosition() et position().

QTextBoundaryFinder::BoundaryType QTextBoundaryFinder::type() const

Renvoie le type de l'QTextBoundaryFinder.

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

Cette opération d'affectation par déplacement attribue la valeur « other » à cette instance de « QTextBoundaryFinder ».

Remarque : l’objet « other », d’où provient le déplacement, est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.11.

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

Attribue 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.