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 |
- Liste de tous les membres, y compris les membres hérités
- QTextCursor fait partie des API de traitement de texte enrichi et des classes partagées implicitement.
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
| Constante | Valeur | Description |
|---|---|---|
QTextCursor::MoveAnchor | 0 | Déplace l'ancre à la même position que le curseur lui-même. |
QTextCursor::KeepAnchor | 1 | Maintient 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
| Constante | Valeur | Description |
|---|---|---|
QTextCursor::NoMove | 0 | Maintenir le curseur à sa position actuelle |
QTextCursor::Start | 1 | Se déplacer au début du document. |
QTextCursor::StartOfLine | 3 | Se placer au début de la ligne actuelle. |
QTextCursor::StartOfBlock | 4 | Se placer au début du bloc actuel. |
QTextCursor::StartOfWord | 5 | Se placer au début du mot actuel. |
QTextCursor::PreviousBlock | 6 | Se placer au début du bloc précédent. |
QTextCursor::PreviousCharacter | 7 | Se placer sur le caractère précédent. |
QTextCursor::PreviousWord | 8 | Se placer au début du mot précédent. |
QTextCursor::Up | 2 | Monter d'une ligne. |
QTextCursor::Left | 9 | Se déplacer d'un caractère vers la gauche. |
QTextCursor::WordLeft | 10 | Se déplacer d'un mot vers la gauche. |
QTextCursor::End | 11 | Aller à la fin du document. |
QTextCursor::EndOfLine | 13 | Se déplacer à la fin de la ligne actuelle. |
QTextCursor::EndOfWord | 14 | Aller à la fin du mot actuel. |
QTextCursor::EndOfBlock | 15 | Se déplacer à la fin du bloc actuel. |
QTextCursor::NextBlock | 16 | Se déplacer au début du bloc suivant. |
QTextCursor::NextCharacter | 17 | Se 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::NextWord | 18 | Se déplacer vers le mot suivant. |
QTextCursor::Down | 12 | Se déplacer d'une ligne vers le bas. |
QTextCursor::Right | 19 | Se déplacer d'un caractère vers la droite. |
QTextCursor::WordRight | 20 | Se déplacer d'un mot vers la droite. |
QTextCursor::NextCell | 21 | Se 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::PreviousCell | 22 | Se 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::NextRow | 23 | Se déplacer vers la première nouvelle cellule de la ligne suivante du tableau actuel. |
QTextCursor::PreviousRow | 24 | Se 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().
| Constante | Valeur | Description |
|---|---|---|
QTextCursor::Document | 3 | Sélectionne l'intégralité du document. |
QTextCursor::BlockUnderCursor | 2 | Sélectionne le bloc de texte situé sous le curseur. |
QTextCursor::LineUnderCursor | 1 | Sélectionne la ligne de texte située sous le curseur. |
QTextCursor::WordUnderCursor | 0 | Sé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.