Sur cette page

QTextCursor Class

La classe QTextCursor fournit une API permettant d'accéder aux objets QTextDocument et de les modifier. En savoir plus...

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

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum MoveMode { MoveAnchor, KeepAnchor }
enum MoveOperation { NoMove, Start, StartOfLine, StartOfBlock, StartOfWord, …, PreviousRow }
enum SelectionType { Document, BlockUnderCursor, LineUnderCursor, WordUnderCursor }

Fonctions publiques

QTextCursor()
QTextCursor(QTextDocument *document)
QTextCursor(QTextFrame *frame)
QTextCursor(const QTextBlock &block)
QTextCursor(const QTextCursor &cursor)
~QTextCursor()
int anchor() const
bool atBlockEnd() const
bool atBlockStart() const
bool atEnd() const
bool atStart() const
void beginEditBlock()
QTextBlock block() const
QTextCharFormat blockCharFormat() const
QTextBlockFormat blockFormat() const
int blockNumber() const
QTextCharFormat charFormat() const
void clearSelection()
int columnNumber() const
QTextList *createList(const QTextListFormat &format)
QTextList *createList(QTextListFormat::Style style)
QTextFrame *currentFrame() const
QTextList *currentList() const
QTextTable *currentTable() const
void deleteChar()
void deletePreviousChar()
QTextDocument *document() const
void endEditBlock()
bool hasComplexSelection() const
bool hasSelection() const
void insertBlock()
void insertBlock(const QTextBlockFormat &format)
void insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)
void insertFragment(const QTextDocumentFragment &fragment)
QTextFrame *insertFrame(const QTextFrameFormat &format)
void insertHtml(const QString &html)
void insertImage(const QTextImageFormat &format)
void insertImage(const QString &name)
void insertImage(const QImage &image, const QString &name = QString())
void insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)
QTextList *insertList(const QTextListFormat &format)
QTextList *insertList(QTextListFormat::Style style)
(since 6.4) void insertMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub)
QTextTable *insertTable(int rows, int columns, const QTextTableFormat &format)
QTextTable *insertTable(int rows, int columns)
void insertText(const QString &text)
void insertText(const QString &text, const QTextCharFormat &format)
bool isCopyOf(const QTextCursor &other) const
bool isNull() const
void joinPreviousEditBlock()
bool keepPositionOnInsert() const
void mergeBlockCharFormat(const QTextCharFormat &modifier)
void mergeBlockFormat(const QTextBlockFormat &modifier)
void mergeCharFormat(const QTextCharFormat &modifier)
bool movePosition(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = MoveAnchor, int n = 1)
int position() const
int positionInBlock() const
void removeSelectedText()
void select(QTextCursor::SelectionType selection)
void selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const
QString selectedText() const
QTextDocumentFragment selection() const
int selectionEnd() const
int selectionStart() const
void setBlockCharFormat(const QTextCharFormat &format)
void setBlockFormat(const QTextBlockFormat &format)
void setCharFormat(const QTextCharFormat &format)
void setKeepPositionOnInsert(bool b)
void setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)
void setVerticalMovementX(int x)
void setVisualNavigation(bool b)
void swap(QTextCursor &other)
int verticalMovementX() const
bool visualNavigation() const
bool operator!=(const QTextCursor &other) const
bool operator<(const QTextCursor &other) const
bool operator<=(const QTextCursor &other) const
QTextCursor &operator=(const QTextCursor &cursor)
bool operator==(const QTextCursor &other) const
bool operator>(const QTextCursor &other) const
bool operator>=(const QTextCursor &other) const

Description détaillée

Les curseurs de texte sont des objets utilisés pour accéder au contenu et à la structure sous-jacente des documents texte, et pour les modifier, via une interface de programmation qui imite le comportement d’un curseur dans un éditeur de texte. QTextCursor contient des informations à la fois sur la position du curseur au sein d’un QTextDocument, et sur toute sélection qu’il a effectuée.

QTextCursor s’inspire du comportement d’un curseur de texte dans un éditeur de texte, offrant ainsi un moyen programmatique d’effectuer des actions standard via l’interface utilisateur. Un document peut être considéré comme une simple chaîne de caractères. L’ position actuelle du curseur () se trouve donc toujours soit entre deux caractères consécutifs de la chaîne, soit avant le tout premier caractère, soit après le tout dernier caractère de la chaîne. Les documents peuvent également contenir des tableaux, des listes, des images et d’autres objets en plus du texte, mais, du point de vue du développeur, le document peut être traité comme une seule longue chaîne. Certaines parties de cette chaîne peuvent être considérées comme se trouvant au sein de blocs particuliers (par exemple, des paragraphes), ou au sein d’une cellule de tableau, d’un élément de liste ou d’autres éléments structurels. Lorsque nous parlons de « caractère courant », nous désignons le caractère situé immédiatement avant l'position() du curseur dans le document. De même, le « bloc courant » est le bloc qui contient l'position() du curseur.

Un QTextCursor dispose également d’une position anchor(). Le texte situé entre anchor() et position() constitue la sélection. Si anchor() == position(), il n’y a pas de sélection.

La position du curseur peut être modifiée par programmation à l’aide de ` setPosition()` et ` movePosition()` ; cette dernière fonction peut également être utilisée pour sélectionner du texte. Pour les sélections, voir ` selectionStart()`, ` selectionEnd()`, ` hasSelection()`, ` clearSelection()` et ` removeSelectedText()`.

Si la fonction position() se trouve au début d’un bloc, atBlockStart() renvoie true; et si elle se trouve à la fin d’un bloc, atBlockEnd() renvoie true. Le format du caractère courant est renvoyé par charFormat(), et le format du bloc courant est renvoyé par blockFormat().

La mise en forme peut être appliquée au document de texte actuel à l’aide des fonctions setCharFormat(), mergeCharFormat(), setBlockFormat() et mergeBlockFormat(). Les fonctions de « définition » remplacent le format du caractère ou du bloc actuel du curseur, tandis que les fonctions de « fusion » ajoutent les propriétés de format spécifiées au format actuel du curseur. Si le curseur a une sélection, le format spécifié est appliqué à la sélection actuelle. Notez que lorsqu’une partie seulement d’un bloc est sélectionnée, le format du bloc est appliqué à l’ensemble du bloc. Le texte situé à la position actuelle du caractère peut être transformé en liste à l’aide de la fonction createList().

Les suppressions peuvent être effectuées à l’aide de ` deleteChar()`, ` deletePreviousChar()` et ` removeSelectedText()`.

Des chaînes de texte peuvent être insérées dans le document à l’aide de la fonction insertText(), tandis que des blocs (correspondant à de nouveaux paragraphes) peuvent être insérés à l’aide de insertBlock().

Les fragments de texte existants peuvent être insérés à l’aide de insertFragment(), mais si vous souhaitez insérer des morceaux de texte dans différents formats, il est généralement plus simple d’utiliser insertText() et de spécifier un format de caractères.

Divers types de structures de niveau supérieur peuvent également être insérés dans le document à l'aide du curseur :

  • Les listes sont des séquences ordonnées d’éléments de bloc agrémentées de puces ou de symboles. Elles sont insérées dans un format spécifié à l’aide de la fonction insertList().
  • Les tableaux sont insérés à l’aide de la fonction ` insertTable()` et peuvent recevoir un format facultatif. Ils contiennent un tableau de cellules que l’on peut parcourir à l’aide du curseur.
  • Les images en ligne sont insérées à l’aide de la fonction ` insertImage()`. L’image à utiliser peut être spécifiée sous forme de format d’image ou par son nom.
  • Les cadres sont insérés en appelant la fonction ` insertFrame()` avec un format spécifié.

Les actions peuvent être regroupées (c'est-à-dire traitées comme une seule action pour les fonctions « Annuler » et « Rétablir ») à l'aide des fonctions ` beginEditBlock()` et ` endEditBlock()`.

Les déplacements du curseur sont limités aux positions valides. En écriture latine, cela correspond à n’importe quel intervalle entre deux caractères consécutifs du texte, avant le premier caractère ou après le dernier caractère. Dans certains autres systèmes d’écriture, les déplacements du curseur sont limités à des « groupes » (par exemple, une syllabe en devanagari, ou une lettre de base accompagnée de signes diacritiques). Des fonctions telles que ` movePosition()` et ` deleteChar()` limitent le déplacement du curseur à ces positions valides.

Voir également Traitement du texte enrichi.

Documentation sur les types de membres

enum QTextCursor::MoveMode

ConstanteValeurDescription
QTextCursor::MoveAnchor0Déplace l'ancre à la même position que le curseur lui-même.
QTextCursor::KeepAnchor1Maintient l'ancre à son emplacement actuel.

Si l'anchor() est maintenue à sa position et que l'position() est déplacée, le texte situé entre les deux sera sélectionné.

enum QTextCursor::MoveOperation

ConstanteValeurDescription
QTextCursor::NoMove0Maintenir le curseur à sa position actuelle
QTextCursor::Start1Se déplacer au début du document.
QTextCursor::StartOfLine3Se placer au début de la ligne actuelle.
QTextCursor::StartOfBlock4Se placer au début du bloc actuel.
QTextCursor::StartOfWord5Se placer au début du mot actuel.
QTextCursor::PreviousBlock6Se placer au début du bloc précédent.
QTextCursor::PreviousCharacter7Se placer sur le caractère précédent.
QTextCursor::PreviousWord8Se placer au début du mot précédent.
QTextCursor::Up2Monter d'une ligne.
QTextCursor::Left9Se déplacer d'un caractère vers la gauche.
QTextCursor::WordLeft10Se déplacer d'un mot vers la gauche.
QTextCursor::End11Aller à la fin du document.
QTextCursor::EndOfLine13Se déplacer à la fin de la ligne actuelle.
QTextCursor::EndOfWord14Aller à la fin du mot actuel.
QTextCursor::EndOfBlock15Se déplacer à la fin du bloc actuel.
QTextCursor::NextBlock16Se déplacer au début du bloc suivant.
QTextCursor::NextCharacter17Se positionner sur le caractère suivant. Si du texte est sélectionné, le premier appel à la fonction « movePosition(NextCharacter, MoveAnchor) » désélectionne le texte sans déplacer le curseur.
QTextCursor::NextWord18Se déplacer vers le mot suivant.
QTextCursor::Down12Se déplacer d'une ligne vers le bas.
QTextCursor::Right19Se déplacer d'un caractère vers la droite.
QTextCursor::WordRight20Se déplacer d'un mot vers la droite.
QTextCursor::NextCell21Se déplacer au début de la cellule suivante du tableau actuel. Si la cellule actuelle est la dernière de la ligne, le curseur se déplace vers la première cellule de la ligne suivante.
QTextCursor::PreviousCell22Se déplacer au début de la cellule précédente du tableau actuel. Si la cellule actuelle est la première de la ligne, le curseur se place dans la dernière cellule de la ligne précédente.
QTextCursor::NextRow23Se déplacer vers la première nouvelle cellule de la ligne suivante du tableau actuel.
QTextCursor::PreviousRow24Se déplace vers la dernière cellule de la ligne précédente du tableau actuel.

Voir aussi ` movePosition()`.

enum QTextCursor::SelectionType

Cette énumération décrit les types de sélection pouvant être appliqués à l'aide de la fonction select().

ConstanteValeurDescription
QTextCursor::Document3Sélectionne l'intégralité du document.
QTextCursor::BlockUnderCursor2Sélectionne le bloc de texte situé sous le curseur.
QTextCursor::LineUnderCursor1Sélectionne la ligne de texte située sous le curseur.
QTextCursor::WordUnderCursor0Sélectionne le mot situé sous le curseur. Si le curseur n'est pas positionné au sein d'une chaîne de caractères sélectionnables, aucun texte n'est sélectionné.

Documentation des fonctions membres

QTextCursor::QTextCursor()

Crée un curseur nul.

[explicit] QTextCursor::QTextCursor(QTextDocument *document)

Crée un curseur pointant vers le début de la chaîne « document ».

[explicit] QTextCursor::QTextCursor(QTextFrame *frame)

Crée un curseur pointant vers le début de la chaîne « frame ».

[explicit] QTextCursor::QTextCursor(const QTextBlock &block)

Crée un curseur pointant vers le début de la block.

QTextCursor::QTextCursor(const QTextCursor &cursor)

Crée un nouveau curseur qui est une copie de cursor.

[noexcept] QTextCursor::~QTextCursor()

Supprime l'QTextCursor.

int QTextCursor::anchor() const

Renvoie la position d'ancrage ; cela revient au même que ` position()` sauf s'il y a une sélection, auquel cas ` position()` marque une extrémité de la sélection et `anchor()` marque l'autre extrémité. Tout comme la position du curseur, la position d'ancrage se situe entre deux caractères.

Voir également position(), setPosition(), movePosition(), selectionStart() et selectionEnd().

bool QTextCursor::atBlockEnd() const

Renvoie « true » si le curseur se trouve à la fin d'un bloc ; sinon, renvoie « false ».

Voir également atBlockStart() et atEnd().

bool QTextCursor::atBlockStart() const

Renvoie ` true ` si le curseur se trouve au début d'un bloc ; sinon, renvoie ` false`.

Voir également atBlockEnd() et atStart().

bool QTextCursor::atEnd() const

Renvoie « true » si le curseur se trouve à la fin du document ; sinon, renvoie « false ».

Voir également atStart() et atBlockEnd().

bool QTextCursor::atStart() const

Renvoie « true » si le curseur se trouve au début du document ; sinon, renvoie « false ».

Voir également atBlockStart() et atEnd().

void QTextCursor::beginEditBlock()

Indique le début d'un bloc d'opérations d'édition sur le document qui doit apparaître comme une seule opération du point de vue des fonctions « Annuler » et « Rétablir ».

Par exemple :

QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();

textDocument->undo();

L'appel à undo() entraînera l'annulation des deux insertions, ce qui supprimera à la fois « World » et « Hello ».

Il est possible d’imbriquer des appels à `beginEditBlock` et ` endEditBlock`. La paire la plus haute déterminera la portée de l’opération d’annulation/rétablissement.

Voir également ` endEditBlock()`.

QTextBlock QTextCursor::block() const

Renvoie le bloc contenant le curseur.

QTextCharFormat QTextCursor::blockCharFormat() const

Renvoie le format de caractères du bloc dans lequel se trouve le curseur.

Le format de caractère du bloc est celui utilisé lors de l'insertion de texte au début d'un bloc vide.

Voir également la fonction ` setBlockCharFormat()`.

QTextBlockFormat QTextCursor::blockFormat() const

Renvoie le format du bloc dans lequel se trouve le curseur.

Voir également setBlockFormat() et charFormat().

int QTextCursor::blockNumber() const

Renvoie le numéro du bloc dans lequel se trouve le curseur, ou 0 si le curseur n'est pas valide.

Notez que cette fonction n'a de sens que dans les documents ne contenant pas d'objets complexes tels que des tableaux ou des cadres.

QTextCharFormat QTextCursor::charFormat() const

Renvoie le format du caractère situé immédiatement avant le curseur position(). Si le curseur est positionné au début d'un bloc de texte non vide, c'est le format du caractère situé immédiatement après le curseur qui est renvoyé.

Voir également setCharFormat(), insertText() et blockFormat().

void QTextCursor::clearSelection()

Efface la sélection actuelle en définissant le point d'ancrage à la position du curseur.

Notez que cela ne supprime pas le texte de la sélection.

Voir également removeSelectedText() et hasSelection().

int QTextCursor::columnNumber() const

Renvoie la position du curseur au sein de la ligne qui le contient.

Notez qu’il s’agit du numéro de colonne par rapport à une ligne renvoyée à la ligne, et non par rapport au bloc (c’est-à-dire au paragraphe).

Vous souhaiterez probablement appeler plutôt la fonction ` positionInBlock()` ().

Voir également positionInBlock().

QTextList *QTextCursor::createList(const QTextListFormat &format)

Crée et renvoie une nouvelle liste contenant l'format on fournie, et fait du paragraphe dans lequel se trouve actuellement le curseur le premier élément de la liste.

Voir également ` insertList()` et ` currentList()`.

QTextList *QTextCursor::createList(QTextListFormat::Style style)

Crée et renvoie une nouvelle liste avec l'style indiquée, en plaçant le paragraphe actuel du curseur en tête de la liste.

Le style à utiliser est défini par l’énumération ` QTextListFormat::Style `.

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

Voir aussi ` insertList()` et ` currentList()`.

QTextFrame *QTextCursor::currentFrame() const

Renvoie un pointeur vers l'image courante. Renvoie « nullptr » si le curseur n'est pas valide.

Voir aussi ` insertFrame()`.

QTextList *QTextCursor::currentList() const

Renvoie la liste actuelle si le curseur position() se trouve à l'intérieur d'un bloc faisant partie d'une liste ; sinon, renvoie nullptr.

Voir également insertList() et createList().

QTextTable *QTextCursor::currentTable() const

Renvoie un pointeur vers la table actuelle si le curseur position() se trouve à l'intérieur d'un bloc faisant partie d'une table ; sinon, renvoie nullptr.

Voir également insertTable().

void QTextCursor::deleteChar()

S'il n'y a pas de texte sélectionné, supprime le caractère situé à la position actuelle du curseur ; sinon, supprime le texte sélectionné.

Voir également deletePreviousChar(), hasSelection() et clearSelection().

void QTextCursor::deletePreviousChar()

S'il n'y a pas de texte sélectionné, supprime le caractère situé avant la position actuelle du curseur ; sinon, supprime le texte sélectionné.

Voir également deleteChar(), hasSelection() et clearSelection().

QTextDocument *QTextCursor::document() const

Renvoie le document auquel ce curseur est associé.

void QTextCursor::endEditBlock()

Indique la fin d'un bloc d'opérations d'édition sur le document qui doit apparaître comme une seule opération du point de vue des fonctions « Annuler » et « Rétablir ».

Voir également beginEditBlock().

bool QTextCursor::hasComplexSelection() const

Renvoie ` true ` si le curseur contient une sélection qui n'est pas simplement une plage allant de ` selectionStart()` à ` selectionEnd()` ; sinon, renvoie ` false`.

Les sélections complexes sont celles qui s'étendent sur au moins deux cellules d'un tableau ; leur étendue est spécifiée par selectedTableCells().

bool QTextCursor::hasSelection() const

Renvoie « true » si le curseur contient une sélection ; sinon, renvoie « false ».

void QTextCursor::insertBlock()

Insère un nouveau bloc vide à l'emplacement du curseur position() avec les valeurs actuelles de blockFormat() et charFormat().

Voir également setBlockFormat().

void QTextCursor::insertBlock(const QTextBlockFormat &format)

Insère un nouveau bloc vide à l'position e du curseur () avec le format de bloc format et le format de caractères de bloc actuel charFormat().

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

Voir également setBlockFormat().

void QTextCursor::insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)

Insère un nouveau bloc vide à l'position e du curseur () avec le format de bloc format et charFormat comme format de caractères du bloc.

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

Voir également setBlockFormat().

void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)

Insère le texte « fragment » à l'position() actuelle.

QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &format)

Insère un cadre avec l'format spécifiée à l'position() du curseur, déplace le curseur position() à l'intérieur du cadre et renvoie le cadre.

Si le curseur contient une sélection, celle-ci est déplacée dans son intégralité à l'intérieur du cadre.

Voir également hasSelection().

void QTextCursor::insertHtml(const QString &html)

Insère le texte « html » à l'position e actuelle (). Le texte est interprété comme du code HTML.

Remarque : lorsque vous utilisez cette fonction avec une feuille de style, celle-ci ne s'applique qu'au bloc courant du document. Pour appliquer une feuille de style à l'ensemble d'un document, utilisez plutôt la fonction QTextDocument::setDefaultStyleSheet().

void QTextCursor::insertImage(const QTextImageFormat &format)

Insère l'image définie par format à l'adresse actuelle position().

void QTextCursor::insertImage(const QString &name)

Méthode pratique permettant d'insérer l'image dont l'name est spécifiée à l'position() actuelle.

QImage img;
textDocument->addResource(QTextDocument::ImageResource, QUrl("myimage"), img);
cursor.insertImage("myimage");

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

void QTextCursor::insertImage(const QImage &image, const QString &name = QString())

Fonction pratique permettant d'insérer l'image ion fournie, avec une name ion facultative, à l'position ion actuelle ().

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

void QTextCursor::insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)

Insère l'image définie par l'format on fournie à la position actuelle du curseur avec l'alignment on spécifiée.

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

Voir également position().

QTextList *QTextCursor::insertList(const QTextListFormat &format)

Insère un nouveau bloc à la position courante et en fait le premier élément d'une liste nouvellement créée avec l'format on fournie. Renvoie la liste créée.

Voir également currentList(), createList() et insertBlock().

QTextList *QTextCursor::insertList(QTextListFormat::Style style)

Insère un nouveau bloc à la position courante et en fait le premier élément d'une liste nouvellement créée avec l'style on fournie. Renvoie la liste créée.

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

Voir également currentList(), createList() et insertBlock().

[since 6.4] void QTextCursor::insertMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub)

Insère le texte markdown à l'position() actuelle, en utilisant la syntaxe Markdown spécifiée features. La valeur par défaut est le dialecte GitHub.

Cette fonction a été introduite dans Qt 6.4.

QTextTable *QTextCursor::insertTable(int rows, int columns, const QTextTableFormat &format)

Crée un nouveau tableau comportant le nombre spécifié de lignes ( rows ) et de colonnes ( columns ) dans l'format, l'insère à l'emplacement du curseur actuel ( position()) dans le document, puis renvoie l'objet tableau. Le curseur est placé au début de la première cellule.

Le tableau doit comporter au moins une ligne et une colonne.

Voir également currentTable().

QTextTable *QTextCursor::insertTable(int rows, int columns)

Crée un nouveau tableau avec le nombre d'rows et d'columns spécifiés, l'insère à l'emplacement du curseur actuel position() dans le document, puis renvoie l'objet tableau. Le curseur est placé au début de la première cellule.

Le tableau doit comporter au moins une ligne et une colonne.

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

Voir également currentTable().

void QTextCursor::insertText(const QString &text)

Insère « text » à la position courante, en utilisant le format de caractère actuel.

S'il y a une sélection, celle-ci est supprimée et remplacée par text, par exemple :

cursor.clearSelection();
cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
cursor.insertText("Hello World");

Cela efface toute sélection existante, sélectionne le mot situé au niveau du curseur (c'est-à-dire à partir de position() vers la droite), puis remplace la sélection par l'expression « Hello World ».

Tous les caractères de saut de ligne ASCII (\n) présents dans le texte inséré sont transformés en séparateurs de blocs Unicode, ce qui correspond à des appels à insertBlock().

Voir également charFormat() et hasSelection().

void QTextCursor::insertText(const QString &text, const QTextCharFormat &format)

Insère « text » à la position courante avec l'format ion fournie.

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

bool QTextCursor::isCopyOf(const QTextCursor &other) const

Renvoie ` true ` si ce curseur et ` other ` sont des copies l'un de l'autre, c'est-à-dire si l'un d'eux a été créé à partir de l'autre et qu'aucun des deux n'a été déplacé depuis. Cette condition est beaucoup plus stricte que la simple égalité.

Voir également operator=() et operator==().

bool QTextCursor::isNull() const

Renvoie ` true ` si le curseur est nul ; sinon, renvoie ` false`. Un curseur nul est créé par le constructeur par défaut.

void QTextCursor::joinPreviousEditBlock()

Tout comme ` beginEditBlock` (), cette fonction marque le début d’un bloc d’opérations d’édition qui doit apparaître comme une seule opération pour les fonctions « Annuler » et « Rétablir ». Cependant, contrairement à ` beginEditBlock` (), elle ne crée pas un nouveau bloc, mais annule l’appel précédent à ` endEditBlock` (), intégrant ainsi les opérations suivantes au bloc d’édition créé précédemment.

Par exemple :

QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();

// ...

cursor.joinPreviousEditBlock();
cursor.insertText("Hey");
cursor.endEditBlock();

textDocument->undo();

L'appel à undo() entraînera l'annulation des trois insertions.

Voir également beginEditBlock() et endEditBlock().

bool QTextCursor::keepPositionOnInsert() const

Indique si le curseur doit conserver sa position actuelle lorsqu'un texte est inséré à l'emplacement du curseur.

La valeur par défaut est false ;

Voir également setKeepPositionOnInsert().

void QTextCursor::mergeBlockCharFormat(const QTextCharFormat &modifier)

Modifie le format de caractères du bloc actuel (ou de tous les blocs compris dans la sélection) en utilisant le format de bloc spécifié par modifier.

Voir également setBlockCharFormat().

void QTextCursor::mergeBlockFormat(const QTextBlockFormat &modifier)

Modifie le format du bloc actuel (ou de tous les blocs compris dans la sélection) en lui appliquant le format spécifié par modifier.

Voir également setBlockFormat() et blockFormat().

void QTextCursor::mergeCharFormat(const QTextCharFormat &modifier)

Fusionne le format de caractère actuel du curseur avec les propriétés décrites par le format modifier. Si le curseur comporte une sélection, cette fonction applique toutes les propriétés définies dans modifier à tous les formats de caractère faisant partie de la sélection.

Voir également hasSelection() et setCharFormat().

bool QTextCursor::movePosition(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = MoveAnchor, int n = 1)

Déplace le curseur en effectuant l'operation n fois, en utilisant l'mode spécifiée, et renvoie true si toutes les opérations se sont déroulées avec succès ; sinon, renvoie false.

Par exemple, si cette fonction est utilisée de manière répétée pour se positionner à la fin du mot suivant, elle finira par échouer lorsque la fin du document sera atteinte.

Par défaut, l’opération de déplacement est effectuée une seule fois (n = 1).

Si mode est défini sur KeepAnchor, le curseur sélectionne le texte sur lequel il se déplace. Cela produit le même effet que lorsque l’utilisateur maintient la touche Maj enfoncée et déplace le curseur à l’aide des touches de navigation.

Voir également setVisualNavigation().

int QTextCursor::position() const

Renvoie la position absolue du curseur dans le document. Le curseur est positionné entre deux caractères.

Remarque : les « caractères » désignent ici la chaîne d'objets « QChar », c'est-à-dire des caractères Unicode 16 bits, et la position est considérée comme un index dans cette chaîne. Cela ne correspond pas nécessairement à des graphèmes individuels du système d’écriture, car un seul graphème peut être représenté par plusieurs caractères Unicode, comme c’est le cas pour les paires de substitution, les ligatures linguistiques ou les signes diacritiques.

Voir également setPosition(), movePosition(), anchor() et positionInBlock().

int QTextCursor::positionInBlock() const

Renvoie la position relative du curseur au sein du bloc. Le curseur est positionné entre deux caractères.

Cela équivaut à ` position() - block().position()`.

Remarque : les « caractères » désignent ici la chaîne d’objets de type ` QChar `, c’est-à-dire des caractères Unicode 16 bits, et la position est considérée comme un index dans cette chaîne. Cela ne correspond pas nécessairement à des graphèmes individuels dans le système d'écriture, car un seul graphème peut être représenté par plusieurs caractères Unicode, comme c'est le cas pour les paires de substitution, les ligatures linguistiques ou les signes diacritiques.

Voir également position().

void QTextCursor::removeSelectedText()

S'il y a une sélection, son contenu est supprimé ; sinon, rien ne se passe.

Voir également hasSelection().

void QTextCursor::select(QTextCursor::SelectionType selection)

Sélectionne le texte du document en fonction de l'selection ion fournie.

void QTextCursor::selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const

Si la sélection s'étend sur plusieurs cellules du tableau, la variable ` firstRow ` contient le numéro de la première ligne de la sélection, ` firstColumn ` contient le numéro de la première colonne de la sélection, et ` numRows ` ainsi que ` numColumns ` contiennent respectivement le nombre de lignes et de colonnes de la sélection. Si la sélection ne s'étend sur aucune cellule du tableau, les résultats sont sans conséquence mais non définis.

QString QTextCursor::selectedText() const

Renvoie le texte de la sélection actuelle (qui peut être vide). Cette méthode ne renvoie que le texte, sans les informations de mise en forme du texte enrichi. Si vous souhaitez obtenir un fragment de document (c'est-à-dire du texte enrichi mis en forme), utilisez plutôt la méthode selection().

Remarque : si la sélection obtenue à partir d'un éditeur s'étend sur un saut de ligne, le texte contiendra un caractère de séparation de paragraphe Unicode U+2029 à la place d'un caractère de saut de ligne \n. Utilisez QString::replace() pour remplacer ces caractères par des sauts de ligne.

QTextDocumentFragment QTextCursor::selection() const

Renvoie la sélection actuelle (qui peut être vide) avec toutes ses informations de mise en forme. Si vous souhaitez uniquement le texte sélectionné (c'est-à-dire du texte brut), utilisez plutôt la fonction selectedText().

Remarque : contrairement à QTextDocumentFragment::toPlainText(), selectedText() peut inclure des caractères Unicode spéciaux tels que QChar::ParagraphSeparator.

Voir également QTextDocumentFragment::toPlainText().

int QTextCursor::selectionEnd() const

Renvoie la fin de la sélection ou ` position()` si le curseur ne contient aucune sélection.

Voir également selectionStart(), position() et anchor().

int QTextCursor::selectionStart() const

Renvoie le début de la sélection ou ` position()` si le curseur ne contient aucune sélection.

Voir également selectionEnd(), position() et anchor().

void QTextCursor::setBlockCharFormat(const QTextCharFormat &format)

Définit le format des caractères du bloc actuel (ou de tous les blocs compris dans la sélection) sur « format ».

Voir aussi blockCharFormat().

void QTextCursor::setBlockFormat(const QTextBlockFormat &format)

Définit le format du bloc actuel (ou de tous les blocs compris dans la sélection) sur « format ».

Voir également blockFormat() et mergeBlockFormat().

void QTextCursor::setCharFormat(const QTextCharFormat &format)

Définit le format de caractère actuel du curseur sur celui spécifié par ` format`. Si le curseur a une sélection, le format ` format ` est appliqué à la sélection actuelle.

Voir également charFormat(), hasSelection() et mergeCharFormat().

void QTextCursor::setKeepPositionOnInsert(bool b)

Détermine si le curseur doit conserver sa position actuelle lorsqu'un texte est inséré à l'endroit où se trouve le curseur.

Si « b » est défini sur « true », le curseur conserve sa position actuelle lorsque du texte est inséré à l'emplacement du curseur. Si « b » est défini sur « false », le curseur se déplace en même temps que le texte inséré.

La valeur par défaut est « false ».

Notez que le curseur se déplace toujours lorsque du texte est inséré avant sa position actuelle, et qu’il conserve toujours sa position lorsque du texte est inséré après sa position actuelle.

Voir également la fonction ` keepPositionOnInsert()`.

void QTextCursor::setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)

Déplace le curseur vers la position absolue du document spécifiée par pos à l'aide d'un MoveMode spécifié par m. Le curseur est positionné entre deux caractères.

Remarque : les « caractères » désignent ici la chaîne d’objets QChar, c’est-à-dire des caractères Unicode 16 bits, et pos est considéré comme un index dans cette chaîne. Cela ne correspond pas nécessairement à des graphèmes individuels du système d’écriture, car un seul graphème peut être représenté par plusieurs caractères Unicode, comme c’est le cas pour les paires de substitution, les ligatures linguistiques ou les signes diacritiques. Pour une approche plus générique de la navigation dans le document, utilisez ` movePosition()` (), qui respectera les limites réelles des graphèmes dans le texte.

Voir également position(), movePosition() et anchor().

void QTextCursor::setVerticalMovementX(int x)

Définit la position visuelle x pour les déplacements verticaux du curseur à l'adresse x.

La position x du déplacement vertical est automatiquement réinitialisée lorsque le curseur se déplace horizontalement, et reste inchangée lorsque le curseur se déplace verticalement. Ce mécanisme permet au curseur de se déplacer de haut en bas sur une ligne visuellement droite avec des polices proportionnelles, et de « sauter » en douceur sur les lignes courtes.

Une valeur de -1 indique qu’aucune position x n’est prédéfinie. Elle sera alors définie automatiquement lors du prochain déplacement du curseur vers le haut ou vers le bas.

Voir également verticalMovementX().

void QTextCursor::setVisualNavigation(bool b)

Active la navigation visuelle sur b.

La navigation visuelle consiste à ignorer les paragraphes de texte masqués. La valeur par défaut est « false ».

Voir également visualNavigation() et movePosition().

[noexcept] void QTextCursor::swap(QTextCursor &other)

Remplace cette instance de curseur de texte par « other ». Cette opération est très rapide et ne peut jamais échouer.

int QTextCursor::verticalMovementX() const

Renvoie la position x visuelle pour les déplacements verticaux du curseur.

Une valeur de -1 indique qu'aucune position x n'est prédéfinie. Elle sera alors définie automatiquement lors du prochain déplacement du curseur vers le haut ou vers le bas.

Voir aussi setVerticalMovementX().

bool QTextCursor::visualNavigation() const

Renvoie « true » si le curseur effectue une navigation visuelle ; sinon, renvoie « false ».

La navigation visuelle consiste à ignorer les paragraphes de texte masqués. La valeur par défaut est false.

Voir également setVisualNavigation() et movePosition().

bool QTextCursor::operator!=(const QTextCursor &other) const

Renvoie « true » si le curseur « other » se trouve à une position différente de celle de ce curseur dans le document ; sinon, renvoie « false ».

bool QTextCursor::operator<(const QTextCursor &other) const

Renvoie « true » si le curseur « other » est positionné plus loin dans le document que ce curseur ; sinon, renvoie « false ».

bool QTextCursor::operator<=(const QTextCursor &other) const

Renvoie « true » si le curseur « other » se trouve après ou à la même position dans le document que ce curseur ; sinon, renvoie « false ».

QTextCursor &QTextCursor::operator=(const QTextCursor &cursor)

Crée une copie de ` cursor ` et l'affecte à ` QTextCursor`. Notez que ` QTextCursor ` est une classe implicitement partagée.

bool QTextCursor::operator==(const QTextCursor &other) const

Renvoie « true » si le curseur de « other » se trouve à la même position dans le document que ce curseur ; sinon, renvoie « false ».

bool QTextCursor::operator>(const QTextCursor &other) const

Renvoie « true » si le curseur « other » est positionné plus haut dans le document que ce curseur ; sinon, renvoie « false ».

bool QTextCursor::operator>=(const QTextCursor &other) const

Renvoie « true » si le curseur « other » se trouve avant ou à la même position dans le document que ce curseur ; sinon, renvoie « false ».

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