QTextCursor Class
Die Klasse „QTextCursor“ bietet eine API für den Zugriff auf und die Bearbeitung von „QTextDocuments“. Mehr...
| Header: | #include <QTextCursor> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QTextCursor ist Teil der Rich-Text-Verarbeitungs-APIs und der implizit gemeinsam genutzten Klassen.
Hinweis: Alle Funktionen dieser Klasse sind reentrant.
Öffentliche Typen
| enum | MoveMode { MoveAnchor, KeepAnchor } |
| enum | MoveOperation { NoMove, Start, StartOfLine, StartOfBlock, StartOfWord, …, PreviousRow } |
| enum | SelectionType { Document, BlockUnderCursor, LineUnderCursor, WordUnderCursor } |
Öffentliche Funktionen
| 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 |
Ausführliche Beschreibung
Textcursor sind Objekte, die dazu dienen, über eine Programmierschnittstelle, die das Verhalten eines Cursors in einem Texteditor nachahmt, auf den Inhalt und die zugrunde liegende Struktur von Textdokumenten zuzugreifen und diese zu ändern. QTextCursor enthält Informationen sowohl über die Position des Cursors innerhalb eines „ QTextDocument “ als auch über die von ihm vorgenommene Auswahl.
QTextCursor orientiert sich am Verhalten eines Textcursors in einem Texteditor und bietet eine programmatische Möglichkeit, Standardaktionen über die Benutzeroberfläche auszuführen. Ein Dokument kann als einzelne Zeichenkette betrachtet werden. Die aktuelle Position des Cursors ( position()) befindet sich daher immer entweder zwischen zwei aufeinanderfolgenden Zeichen in der Zeichenkette oder vor dem allerersten bzw. nach dem allerletzten Zeichen der Zeichenkette. Dokumente können neben Text auch Tabellen, Listen, Bilder und andere Objekte enthalten, doch aus Sicht des Entwicklers kann das Dokument als eine einzige lange Zeichenkette behandelt werden. Bestimmte Teile dieser Zeichenkette können als Teil bestimmter Blöcke (z. B. Absätze), einer Tabellenzelle, eines Listenelements oder anderer struktureller Elemente betrachtet werden. Wenn wir von „aktuelles Zeichen“ sprechen, meinen wir das Zeichen unmittelbar vor dem Cursor position() im Dokument. Analog dazu ist der „aktuelle Block“ der Block, der den Cursor position() enthält.
Ein `QTextCursor` verfügt außerdem über eine Position ` anchor()`. Der Text zwischen ` anchor()` und ` position()` stellt die Auswahl dar. Wenn ` anchor()` == ` position()` ist, liegt keine Auswahl vor.
Die Cursorposition kann programmgesteuert mit ` setPosition()` und ` movePosition()` geändert werden; Letzteres kann auch zum Auswählen von Text verwendet werden. Informationen zu Auswahlen finden Sie unter ` selectionStart()`, ` selectionEnd()`, ` hasSelection()`, ` clearSelection()` und ` removeSelectedText()`.
Befindet sich das „ position “ () am Anfang eines Blocks, gibt „ atBlockStart “ () „ true “ zurück; befindet es sich am Ende eines Blocks, gibt „ atBlockEnd “ () „true“ zurück. Das Format des aktuellen Zeichens wird von „ charFormat “ () zurückgegeben, und das Format des aktuellen Blocks wird von „ blockFormat “ () zurückgegeben.
Die Formatierung des aktuellen Textdokuments kann mithilfe der Funktionen „ setCharFormat()“, „ mergeCharFormat()“, „ setBlockFormat()“ und „ mergeBlockFormat()“ vorgenommen werden. Die „set“-Funktionen ersetzen das aktuelle Zeichen- oder Blockformat des Cursors, während die „merge“-Funktionen die angegebenen Formateigenschaften zum aktuellen Format des Cursors hinzufügen. Wenn der Cursor eine Auswahl hat, wird die angegebene Formatierung auf die aktuelle Auswahl angewendet. Beachten Sie, dass bei der Auswahl nur eines Teils eines Blocks die Blockformatierung auf den gesamten Block angewendet wird. Der Text an der aktuellen Zeichenposition kann mit „ createList()“ in eine Liste umgewandelt werden.
Löschvorgänge können mit den Funktionen „ deleteChar()“, „ deletePreviousChar()“ und „ removeSelectedText()“ durchgeführt werden.
Textzeichenfolgen können mit der Funktion „ insertText()“ in das Dokument eingefügt werden, Blöcke (die neue Absätze darstellen) können mit „ insertBlock()“ eingefügt werden.
Vorhandene Textfragmente können mit „ insertFragment()“ eingefügt werden; wenn Sie jedoch Textteile in verschiedenen Formaten einfügen möchten, ist es in der Regel immer noch einfacher, „ insertText()“ zu verwenden und ein Zeichenformat anzugeben.
Verschiedene Arten von übergeordneten Strukturen können ebenfalls mit dem Cursor in das Dokument eingefügt werden:
- Listen sind geordnete Folgen von Blockelementen, die mit Aufzählungszeichen oder Symbolen versehen sind. Diese werden mit der Funktion ` insertList()` in einem bestimmten Format eingefügt.
- Tabellen werden mit der Funktion ` insertTable()` eingefügt und können optional formatiert werden. Diese enthalten ein Array von Zellen, die mit dem Cursor durchlaufen werden können.
- Inline-Bilder werden mit der Funktion ` insertImage()` eingefügt. Das zu verwendende Bild kann in einem Bildformat oder anhand seines Namens angegeben werden.
- Rahmen werden durch Aufruf von ` insertFrame()` mit einem angegebenen Format eingefügt.
Aktionen können mithilfe von ` beginEditBlock()` und ` endEditBlock()` gruppiert werden (d. h. beim Rückgängigmachen und Wiederherstellen als eine einzige Aktion behandelt werden).
Cursorbewegungen sind auf gültige Cursorpositionen beschränkt. In lateinischer Schrift sind dies Positionen zwischen zwei beliebigen aufeinanderfolgenden Zeichen im Text, vor dem ersten Zeichen oder nach dem letzten Zeichen. In einigen anderen Schriftsystemen sind Cursorbewegungen auf „Cluster“ beschränkt (z. B. eine Silbe in Devanagari oder ein Grundbuchstabe plus diakritische Zeichen). Funktionen wie „ movePosition()“ und „ deleteChar()“ beschränken die Cursorbewegung auf diese gültigen Positionen.
Siehe auch „Rich-Text-Verarbeitung“.
Dokumentation zu Mitgliedstypen
enum QTextCursor::MoveMode
| Konstante | Wert | Beschreibung |
|---|---|---|
QTextCursor::MoveAnchor | 0 | Verschiebt den Anker an die Position des Cursors. |
QTextCursor::KeepAnchor | 1 | Behält den Anker an seiner aktuellen Position bei. |
Wenn der „ anchor “ () an seiner Position verbleibt und der „ position “ () verschoben wird, wird der dazwischenliegende Text markiert.
enum QTextCursor::MoveOperation
| Konstante | Wert | Beschreibung |
|---|---|---|
QTextCursor::NoMove | 0 | Cursor an der aktuellen Position belassen |
QTextCursor::Start | 1 | Zum Anfang des Dokuments springen. |
QTextCursor::StartOfLine | 3 | Zum Anfang der aktuellen Zeile springen. |
QTextCursor::StartOfBlock | 4 | Zum Anfang des aktuellen Blocks springen. |
QTextCursor::StartOfWord | 5 | Zum Anfang des aktuellen Wortes springen. |
QTextCursor::PreviousBlock | 6 | Springe zum Anfang des vorherigen Blocks. |
QTextCursor::PreviousCharacter | 7 | Zum vorherigen Zeichen springen. |
QTextCursor::PreviousWord | 8 | Springe zum Anfang des vorherigen Wortes. |
QTextCursor::Up | 2 | Eine Zeile nach oben springen. |
QTextCursor::Left | 9 | Ein Zeichen nach links springen. |
QTextCursor::WordLeft | 10 | Um ein Wort nach links springen. |
QTextCursor::End | 11 | Zum Ende des Dokuments springen. |
QTextCursor::EndOfLine | 13 | Zum Ende der aktuellen Zeile springen. |
QTextCursor::EndOfWord | 14 | Zum Ende des aktuellen Wortes springen. |
QTextCursor::EndOfBlock | 15 | Zum Ende des aktuellen Blocks springen. |
QTextCursor::NextBlock | 16 | Zum Anfang des nächsten Blocks springen. |
QTextCursor::NextCharacter | 17 | Zum nächsten Zeichen springen. Wenn Text markiert ist, hebt der erste Aufruf von „ movePosition(NextCharacter, MoveAnchor) “ die Markierung auf, ohne den Cursor zu verschieben. |
QTextCursor::NextWord | 18 | Springe zum nächsten Wort. |
QTextCursor::Down | 12 | Eine Zeile nach unten springen. |
QTextCursor::Right | 19 | Springe ein Zeichen nach rechts. |
QTextCursor::WordRight | 20 | Bewegung um ein Wort nach rechts. |
QTextCursor::NextCell | 21 | Springe zum Anfang der nächsten Tabellenzelle innerhalb der aktuellen Tabelle. Wenn die aktuelle Zelle die letzte Zelle in der Zeile ist, springt der Cursor zur ersten Zelle der nächsten Zeile. |
QTextCursor::PreviousCell | 22 | Springe zum Anfang der vorherigen Tabellenzelle innerhalb der aktuellen Tabelle. Ist die aktuelle Zelle die erste Zelle der Zeile, springt der Cursor zur letzten Zelle der vorherigen Zeile. |
QTextCursor::NextRow | 23 | Springe zur ersten neuen Zelle der nächsten Zeile in der aktuellen Tabelle. |
QTextCursor::PreviousRow | 24 | Springe zur letzten Zelle der vorherigen Zeile in der aktuellen Tabelle. |
Siehe auch movePosition().
enum QTextCursor::SelectionType
Diese Enumeration beschreibt die Arten der Auswahl, die mit der Funktion „ select()“ angewendet werden können.
| Konstante | Wert | Beschreibung |
|---|---|---|
QTextCursor::Document | 3 | Wählt das gesamte Dokument aus. |
QTextCursor::BlockUnderCursor | 2 | Wählt den Textblock unter dem Cursor aus. |
QTextCursor::LineUnderCursor | 1 | Wählt die Textzeile unter dem Cursor aus. |
QTextCursor::WordUnderCursor | 0 | Wählt das Wort unter dem Cursor aus. Befindet sich der Cursor nicht innerhalb einer Zeichenfolge, die ausgewählt werden kann, wird kein Text ausgewählt. |
Dokumentation der Mitgliedsfunktionen
QTextCursor::QTextCursor()
Erstellt einen Null-Cursor.
[explicit] QTextCursor::QTextCursor(QTextDocument *document)
Erstellt einen Cursor, der auf den Anfang der Datei „ document “ zeigt.
[explicit] QTextCursor::QTextCursor(QTextFrame *frame)
Erstellt einen Cursor, der auf den Anfang der Datei „ frame “ zeigt.
[explicit] QTextCursor::QTextCursor(const QTextBlock &block)
Erstellt einen Cursor, der auf den Anfang der Datei „ block “ zeigt.
QTextCursor::QTextCursor(const QTextCursor &cursor)
Erstellt einen neuen Cursor, der eine Kopie von „ cursor “ ist.
[noexcept] QTextCursor::~QTextCursor()
Zerstört die „ QTextCursor “.
int QTextCursor::anchor() const
Gibt die Ankerposition zurück; dies entspricht der Funktion „ position()“, es sei denn, es liegt eine Auswahl vor. In diesem Fall markiert „ position()“ das eine Ende der Auswahl und „anchor()“ das andere Ende. Genau wie die Cursorposition liegt die Ankerposition zwischen Zeichen.
Siehe auch position(), setPosition(), movePosition(), selectionStart() und selectionEnd().
bool QTextCursor::atBlockEnd() const
Gibt „ true “ zurück, wenn sich der Cursor am Ende eines Blocks befindet; andernfalls wird „ false “ zurückgegeben.
Siehe auch atBlockStart() und atEnd().
bool QTextCursor::atBlockStart() const
Gibt „ true “ zurück, wenn sich der Cursor am Anfang eines Blocks befindet; andernfalls wird „ false “ zurückgegeben.
Siehe auch atBlockEnd() und atStart().
bool QTextCursor::atEnd() const
Gibt „ true “ zurück, wenn sich der Cursor am Ende des Dokuments befindet; andernfalls wird „ false “ zurückgegeben.
Siehe auch atStart() und atBlockEnd().
bool QTextCursor::atStart() const
Gibt „ true “ zurück, wenn sich der Cursor am Anfang des Dokuments befindet; andernfalls wird „ false “ zurückgegeben.
Siehe auch atBlockStart() und atEnd().
void QTextCursor::beginEditBlock()
Kennzeichnet den Beginn eines Blocks von Bearbeitungsvorgängen am Dokument, der aus Sicht der Rückgängig-/Wiederherstellungsfunktion als ein einziger Vorgang erscheinen soll.
Beispiel:
QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();
textDocument->undo();Der Aufruf von `undo()` führt dazu, dass beide Einfügungen rückgängig gemacht werden, sodass sowohl „World“ als auch „Hello“ entfernt werden.
Aufrufe von `beginEditBlock` und ` endEditBlock` können verschachtelt werden. Das oberste Paar bestimmt den Geltungsbereich der Rückgängig-/Wiederherstellungsoperation.
Siehe auch ` endEditBlock()`.
QTextBlock QTextCursor::block() const
Gibt den Block zurück, der den Cursor enthält.
QTextCharFormat QTextCursor::blockCharFormat() const
Gibt das Blockzeichenformat des Blocks zurück, in dem sich der Cursor befindet.
Das Blockzeichenformat ist das Format, das beim Einfügen von Text am Anfang eines leeren Blocks verwendet wird.
Siehe auch „ setBlockCharFormat()“.
QTextBlockFormat QTextCursor::blockFormat() const
Gibt das Blockformat des Blocks zurück, in dem sich der Cursor befindet.
Siehe auch setBlockFormat() und charFormat().
int QTextCursor::blockNumber() const
Gibt die Nummer des Blocks zurück, in dem sich der Cursor befindet, oder 0, wenn der Cursor ungültig ist.
Beachten Sie, dass diese Funktion nur in Dokumenten ohne komplexe Objekte wie Tabellen oder Rahmen sinnvoll ist.
QTextCharFormat QTextCursor::charFormat() const
Gibt das Format des Zeichens unmittelbar vor dem Cursor zurück: position(). Befindet sich der Cursor am Anfang eines Textblocks, der nicht leer ist, wird das Format des Zeichens unmittelbar nach dem Cursor zurückgegeben.
Siehe auch setCharFormat(), insertText() und blockFormat().
void QTextCursor::clearSelection()
Löscht die aktuelle Auswahl, indem der Anker an die Cursorposition gesetzt wird.
Beachten Sie, dass der Text der Auswahl dabei nicht gelöscht wird.
Siehe auch removeSelectedText() und hasSelection().
int QTextCursor::columnNumber() const
Gibt die Position des Cursors innerhalb der Zeile zurück, in der er sich befindet.
Beachten Sie, dass es sich hierbei um die Spaltennummer relativ zu einer umgebrochenen Zeile handelt, nicht relativ zum Block (d. h. dem Absatz).
Wahrscheinlich möchten Sie stattdessen ` positionInBlock()` aufrufen.
Siehe auch ` positionInBlock()`.
QTextList *QTextCursor::createList(const QTextListFormat &format)
Erstellt eine neue Liste mit dem angegebenen „ format “ und gibt diese zurück; dabei wird der aktuelle Absatz, in dem sich der Cursor befindet, zum ersten Listenelement gemacht.
Siehe auch „ insertList()“ und „ currentList()“.
QTextList *QTextCursor::createList(QTextListFormat::Style style)
Erstellt eine neue Liste mit dem angegebenen „ style “ und gibt diese zurück, wobei der aktuelle Absatz des Cursors zum ersten Listenelement wird.
Der zu verwendende Stil wird durch die Enumeration „ QTextListFormat::Style “ definiert.
Dies ist eine überladene Funktion.
Siehe auch ` insertList()` und ` currentList()`.
QTextFrame *QTextCursor::currentFrame() const
Gibt einen Zeiger auf den aktuellen Frame zurück. Gibt „ nullptr “ zurück, wenn der Cursor ungültig ist.
Siehe auch „ insertFrame()“.
QTextList *QTextCursor::currentList() const
Gibt die aktuelle Liste zurück, wenn sich der Cursor position() innerhalb eines Blocks befindet, der Teil einer Liste ist; andernfalls wird nullptr zurückgegeben.
Siehe auch ` insertList()` und ` createList()`.
QTextTable *QTextCursor::currentTable() const
Gibt einen Zeiger auf die aktuelle Tabelle zurück, wenn sich der Cursor position() innerhalb eines Blocks befindet, der Teil einer Tabelle ist; andernfalls wird nullptr zurückgegeben.
Siehe auch ` insertTable()`.
void QTextCursor::deleteChar()
Wenn kein Text ausgewählt ist, wird das Zeichen an der aktuellen Cursorposition gelöscht; andernfalls wird der ausgewählte Text gelöscht.
Siehe auch deletePreviousChar(), hasSelection() und clearSelection().
void QTextCursor::deletePreviousChar()
Wenn kein Text ausgewählt ist, wird das Zeichen vor der aktuellen Cursorposition gelöscht; andernfalls wird der ausgewählte Text gelöscht.
Siehe auch deleteChar(), hasSelection() und clearSelection().
QTextDocument *QTextCursor::document() const
Gibt das Dokument zurück, dem dieser Cursor zugeordnet ist.
void QTextCursor::endEditBlock()
Zeigt das Ende eines Blocks von Bearbeitungsvorgängen am Dokument an, der aus Sicht der Rückgängig-/Wiederherstellungsfunktion als ein einziger Vorgang erscheinen soll.
Siehe auch „ beginEditBlock()“.
bool QTextCursor::hasComplexSelection() const
Gibt „ true “ zurück, wenn der Cursor eine Auswahl enthält, die nicht lediglich ein Bereich von „ selectionStart()“ bis „ selectionEnd()“ ist; andernfalls wird „ false “ zurückgegeben.
Komplexe Auswahlen sind solche, die sich über mindestens zwei Zellen in einer Tabelle erstrecken; ihr Umfang wird durch ` selectedTableCells()` angegeben.
bool QTextCursor::hasSelection() const
Gibt „ true “ zurück, wenn der Cursor eine Auswahl enthält; andernfalls wird „ false “ zurückgegeben.
void QTextCursor::insertBlock()
Fügt an der Cursorposition position() einen neuen leeren Block ein, der die aktuellen Werte blockFormat() und charFormat() enthält.
Siehe auch setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format)
Fügt an der Cursorposition position() einen neuen leeren Block mit dem Blockformat format und dem aktuellen charFormat() als Blockzeichenformat ein.
Dies ist eine überladene Funktion.
Siehe auch setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)
Fügt an der Cursorposition einen neuen leeren Block ein position() mit dem Blockformat format und charFormat als Blockzeichenformat.
Dies ist eine überladene Funktion.
Siehe auch setBlockFormat().
void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)
Fügt den Text „ fragment “ an der aktuellen Position „ position “ () ein.
QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &format)
Fügt an der aktuellen Cursorposition position() einen Rahmen mit der angegebenen URL format ein, verschiebt den Cursor position() innerhalb des Rahmens und gibt den Rahmen zurück.
Wenn der Cursor eine Auswahl enthält, wird die gesamte Auswahl in den Rahmen verschoben.
Siehe auch ` hasSelection()`.
void QTextCursor::insertHtml(const QString &html)
Fügt den Text „ html “ an der aktuellen Position „ position “ () ein. Der Text wird als HTML interpretiert.
Hinweis: Bei Verwendung dieser Funktion mit einem Stylesheet gilt das Stylesheet nur für den aktuellen Block im Dokument. Um ein Stylesheet dokumentweit anzuwenden, verwenden Sie stattdessen „ QTextDocument::setDefaultStyleSheet()“.
void QTextCursor::insertImage(const QTextImageFormat &format)
Fügt das unter format definierte Bild an der aktuellen Position position() ein.
void QTextCursor::insertImage(const QString &name)
Praktische Methode zum Einfügen des Bildes mit der angegebenen URL name an der aktuellen URL position().
QImage img;
textDocument->addResource(QTextDocument::ImageResource, QUrl("myimage"), img);
cursor.insertImage("myimage");Dies ist eine überladene Funktion.
void QTextCursor::insertImage(const QImage &image, const QString &name = QString())
Hilfsfunktion zum Einfügen des angegebenen „ image “ mit einem optionalen „ name “ an der aktuellen „ position()“.
Dies ist eine überladene Funktion.
void QTextCursor::insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)
Fügt das durch die angegebene ` format ` definierte Bild an der aktuellen Cursorposition mit dem angegebenen ` alignment` ein.
Dies ist eine überladene Funktion.
Siehe auch position().
QTextList *QTextCursor::insertList(const QTextListFormat &format)
Fügt an der aktuellen Position einen neuen Block ein und macht ihn zum ersten Listenelement einer neu erstellten Liste mit dem angegebenen format. Gibt die erstellte Liste zurück.
Siehe auch currentList(), createList() und insertBlock().
QTextList *QTextCursor::insertList(QTextListFormat::Style style)
Fügt an der aktuellen Position einen neuen Block ein und macht ihn zum ersten Listenelement einer neu erstellten Liste mit der angegebenen „ style “. Gibt die erstellte Liste zurück.
Dies ist eine überladene Funktion.
Siehe auch currentList(), createList() und insertBlock().
[since 6.4] void QTextCursor::insertMarkdown(const QString &markdown, QTextDocument::MarkdownFeatures features = QTextDocument::MarkdownDialectGitHub)
Fügt den Text „ markdown “ an der aktuellen Position „ position()“ ein, wobei die angegebene Markdown- features verwendet wird. Standardmäßig wird der GitHub-Dialekt verwendet.
Diese Funktion wurde in Qt 6.4 eingeführt.
QTextTable *QTextCursor::insertTable(int rows, int columns, const QTextTableFormat &format)
Erstellt eine neue Tabelle mit der angegebenen Anzahl von rows und columns in der angegebenen format, fügt sie an der aktuellen Cursorposition position() im Dokument ein und gibt das Tabellenobjekt zurück. Der Cursor wird an den Anfang der ersten Zelle gesetzt.
Die Tabelle muss mindestens eine Zeile und eine Spalte enthalten.
Siehe auch ` currentTable()`.
QTextTable *QTextCursor::insertTable(int rows, int columns)
Erstellt eine neue Tabelle mit der angegebenen Anzahl von rows und columns, fügt sie an der aktuellen Cursorposition position() im Dokument ein und gibt das Tabellenobjekt zurück. Der Cursor wird an den Anfang der ersten Zelle gesetzt.
Die Tabelle muss mindestens eine Zeile und eine Spalte enthalten.
Dies ist eine überladene Funktion.
Siehe auch currentTable().
void QTextCursor::insertText(const QString &text)
Fügt an der aktuellen Position „ text “ ein und verwendet dabei das aktuelle Zeichenformat.
Wenn eine Auswahl vorhanden ist, wird diese gelöscht und durch „ text “ ersetzt, zum Beispiel:
cursor.clearSelection();
cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor);
cursor.insertText("Hello World");Dadurch wird jede vorhandene Auswahl gelöscht, das Wort an der Cursorposition (d. h. ab position() nach vorne) markiert und die Auswahl durch die Phrase „Hello World“ ersetzt.
Alle ASCII-Zeilenvorschubzeichen (\n) im eingefügten Text werden in Unicode-Blocktrennzeichen umgewandelt, entsprechend den Aufrufen von insertBlock().
Siehe auch charFormat() und hasSelection().
void QTextCursor::insertText(const QString &text, const QTextCharFormat &format)
Fügt an der aktuellen Position „ text “ mit dem angegebenen „ format “ ein.
Dies ist eine überladene Funktion.
bool QTextCursor::isCopyOf(const QTextCursor &other) const
Gibt „ true “ zurück, wenn dieser Cursor und „ other “ Kopien voneinander sind, d. h., wenn einer von beiden als Kopie des anderen erstellt wurde und sich seitdem keiner von beiden verschoben hat. Dies ist wesentlich strenger als die Gleichheit.
Siehe auch „ operator=()“ und „ operator==()“.
bool QTextCursor::isNull() const
Gibt „ true “ zurück, wenn der Cursor null ist; andernfalls wird „ false “ zurückgegeben. Ein Null-Cursor wird vom Standardkonstruktor erstellt.
void QTextCursor::joinPreviousEditBlock()
Wie „ beginEditBlock “ () markiert dies den Beginn eines Blocks von Bearbeitungsvorgängen, die für „Rückgängig“/„Wiederherstellen“ als ein einziger Vorgang erscheinen sollen. Im Gegensatz zu „ beginEditBlock “ () wird jedoch kein neuer Block begonnen, sondern der vorherige Aufruf von „ endEditBlock “ () rückgängig gemacht, wodurch nachfolgende Vorgänge Teil des zuvor erstellten Bearbeitungsblocks werden.
Beispiel:
QTextCursor cursor(textDocument);
cursor.beginEditBlock();
cursor.insertText("Hello");
cursor.insertText("World");
cursor.endEditBlock();
// ...
cursor.joinPreviousEditBlock();
cursor.insertText("Hey");
cursor.endEditBlock();
textDocument->undo();Der Aufruf von `undo()` bewirkt, dass alle drei Einfügungen rückgängig gemacht werden.
Siehe auch ` beginEditBlock()` und ` endEditBlock()`.
bool QTextCursor::keepPositionOnInsert() const
Gibt zurück, ob der Cursor seine aktuelle Position beibehalten soll, wenn Text an der Cursorposition eingefügt wird.
Der Standardwert ist „false“;
Siehe auch ` setKeepPositionOnInsert()`.
void QTextCursor::mergeBlockCharFormat(const QTextCharFormat &modifier)
Ändert das Zeichenformat des aktuellen Blocks (oder aller in der Auswahl enthaltenen Blöcke) anhand des unter modifier angegebenen Blockformats.
Siehe auch ` setBlockCharFormat()`.
void QTextCursor::mergeBlockFormat(const QTextBlockFormat &modifier)
Ändert das Blockformat des aktuellen Blocks (oder aller in der Auswahl enthaltenen Blöcke) anhand des unter modifier angegebenen Blockformats.
Siehe auch „ setBlockFormat()“ und „ blockFormat()“.
void QTextCursor::mergeCharFormat(const QTextCharFormat &modifier)
Fügt das aktuelle Zeichenformat des Cursors mit den in „format modifier “ beschriebenen Eigenschaften zusammen. Wenn der Cursor eine Auswahl hat, wendet diese Funktion alle in „ modifier “ festgelegten Eigenschaften auf alle Zeichenformate an, die Teil der Auswahl sind.
Siehe auch hasSelection() und setCharFormat().
bool QTextCursor::movePosition(QTextCursor::MoveOperation operation, QTextCursor::MoveMode mode = MoveAnchor, int n = 1)
Bewegt den Cursor, indem die angegebene Funktion „ operation “ n -mal unter Verwendung des angegebenen Parameters „ mode “ aufgerufen wird, und gibt „ true “ zurück, wenn alle Operationen erfolgreich abgeschlossen wurden; andernfalls wird „ false “ zurückgegeben.
Wird diese Funktion beispielsweise wiederholt verwendet, um zum Ende des nächsten Wortes zu springen, schlägt sie schließlich fehl, wenn das Ende des Dokuments erreicht ist.
Standardmäßig wird der Sprungvorgang einmal ausgeführt (n = 1).
Ist mode KeepAnchor , markiert der Cursor den Text, über den er sich bewegt. Dies entspricht dem Effekt, den der Benutzer erzielt, wenn er die Umschalttaste gedrückt hält und den Cursor mit den Cursortasten bewegt.
Siehe auch ` setVisualNavigation()`
int QTextCursor::position() const
Gibt die absolute Position des Cursors innerhalb des Dokuments zurück. Der Cursor befindet sich zwischen Zeichen.
Hinweis: Die „Zeichen“ beziehen sich in diesem Fall auf die Zeichenkette aus „ QChar “-Objekten, d. h. 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenkette betrachtet. Dies entspricht nicht unbedingt einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie beispielsweise bei Surrogatpaaren, sprachlichen Ligaturen oder diakritischen Zeichen.
Siehe auch setPosition(), movePosition(), anchor() und positionInBlock().
int QTextCursor::positionInBlock() const
Gibt die relative Position des Cursors innerhalb des Blocks zurück. Der Cursor befindet sich zwischen Zeichen.
Dies entspricht ` position() - block().position()`.
Hinweis: Die „Zeichen“ beziehen sich in diesem Fall auf die Zeichenkette aus QChar -Objekten, d. h. 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenkette betrachtet. Dies entspricht nicht unbedingt einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie beispielsweise bei Surrogatpaaren, sprachlichen Ligaturen oder diakritischen Zeichen.
Siehe auch ` position()`.
void QTextCursor::removeSelectedText()
Wenn eine Auswahl vorhanden ist, wird deren Inhalt gelöscht; andernfalls erfolgt keine Aktion.
Siehe auch hasSelection().
void QTextCursor::select(QTextCursor::SelectionType selection)
Wählt Text im Dokument entsprechend dem angegebenen „ selection “ aus.
void QTextCursor::selectedTableCells(int *firstRow, int *numRows, int *firstColumn, int *numColumns) const
Wenn sich die Auswahl über Tabellenzellen erstreckt, wird firstRow mit der Nummer der ersten Zeile in der Auswahl, firstColumn mit der Nummer der ersten Spalte in der Auswahl und numRows sowie numColumns mit der Anzahl der Zeilen und Spalten in der Auswahl gefüllt. Wenn sich die Auswahl nicht über Tabellenzellen erstreckt, sind die Ergebnisse zwar harmlos, aber undefiniert.
QString QTextCursor::selectedText() const
Gibt den Text der aktuellen Auswahl zurück (der leer sein kann). Dabei wird nur der Text ohne Formatierungsinformationen zurückgegeben. Wenn Sie ein Dokumentfragment (d. h. formatierten Rich-Text) erhalten möchten, verwenden Sie stattdessen ` selection()`.
Hinweis: Wenn die aus einem Editor bezogene Auswahl einen Zeilenumbruch umfasst, enthält der Text anstelle eines Zeilenumbruchzeichens \n ein Unicode-Absatztrennzeichen U+2029. Verwenden Sie QString::replace(), um diese Zeichen durch Zeilenumbrüche zu ersetzen.
QTextDocumentFragment QTextCursor::selection() const
Gibt die aktuelle Auswahl (die leer sein kann) mit allen Formatierungsinformationen zurück. Wenn Sie nur den ausgewählten Text (d. h. reinen Text) möchten, verwenden Sie stattdessen selectedText().
Hinweis: Im Gegensatz zu ` QTextDocumentFragment::toPlainText()` können bei ` selectedText()` spezielle Unicode-Zeichen wie ` QChar::ParagraphSeparator` enthalten sein.
Siehe auch ` QTextDocumentFragment::toPlainText()`.
int QTextCursor::selectionEnd() const
Gibt das Ende der Auswahl zurück oder „ position()“, wenn der Cursor keine Auswahl enthält.
Siehe auch ` selectionStart()`, ` position()` und ` anchor()`.
int QTextCursor::selectionStart() const
Gibt den Anfang der Auswahl zurück oder „ position()“, wenn der Cursor keine Auswahl enthält.
Siehe auch ` selectionEnd()`, ` position()` und ` anchor()`.
void QTextCursor::setBlockCharFormat(const QTextCharFormat &format)
Legt das Blockzeichenformat des aktuellen Blocks (oder aller in der Auswahl enthaltenen Blöcke) auf „ format “ fest.
Siehe auch „ blockCharFormat()“.
void QTextCursor::setBlockFormat(const QTextBlockFormat &format)
Legt das Blockformat des aktuellen Blocks (oder aller in der Auswahl enthaltenen Blöcke) auf „ format “ fest.
Siehe auch „ blockFormat()“ und „ mergeBlockFormat()“.
void QTextCursor::setCharFormat(const QTextCharFormat &format)
Setzt das aktuelle Zeichenformat des Cursors auf das angegebene „ format “. Wenn der Cursor eine Auswahl hat, wird das angegebene „ format “ auf die aktuelle Auswahl angewendet.
Siehe auch charFormat(), hasSelection() und mergeCharFormat().
void QTextCursor::setKeepPositionOnInsert(bool b)
Legt fest, ob der Cursor seine aktuelle Position beibehalten soll, wenn Text an der aktuellen Cursorposition eingefügt wird.
Ist „ b “ auf „true“ gesetzt, behält der Cursor seine aktuelle Position bei, wenn Text an der Cursorposition eingefügt wird. Ist „ b “ auf „false“ gesetzt, bewegt sich der Cursor mit dem eingefügten Text mit.
Der Standardwert ist „false“.
Beachten Sie, dass sich der Cursor immer verschiebt, wenn Text vor der aktuellen Cursorposition eingefügt wird, und dass er seine Position immer beibehält, wenn Text nach der aktuellen Cursorposition eingefügt wird.
Siehe auch „ keepPositionOnInsert()“.
void QTextCursor::setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)
Bewegt den Cursor an die absolute Position im Dokument, die durch ` pos ` angegeben wird, unter Verwendung eines durch ` m` angegebenen ` MoveMode `. Der Cursor wird zwischen Zeichen positioniert.
Hinweis: Die „Zeichen“ beziehen sich in diesem Fall auf die Zeichenkette aus QChar -Objekten, d. h. 16-Bit-Unicode-Zeichen, und pos wird als Index in dieser Zeichenkette betrachtet. Dies entspricht nicht unbedingt einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie beispielsweise bei Surrogatpaaren, sprachlichen Ligaturen oder diakritischen Zeichen. Für einen allgemeineren Ansatz zur Navigation im Dokument verwenden Sie „ movePosition()“, wodurch die tatsächlichen Graphemgrenzen im Text berücksichtigt werden.
Siehe auch position(), movePosition() und anchor().
void QTextCursor::setVerticalMovementX(int x)
Legt die visuelle x-Position für vertikale Cursorbewegungen auf „ x “ fest.
Die x-Position für vertikale Bewegungen wird automatisch zurückgesetzt, wenn sich der Cursor horizontal bewegt, und bleibt unverändert, wenn sich der Cursor vertikal bewegt. Dieser Mechanismus ermöglicht es dem Cursor, sich bei proportionalen Schriftarten auf einer optisch geraden Linie auf und ab zu bewegen und bei kurzen Zeilen sanft darüber zu „springen“.
Der Wert -1 bedeutet, dass keine vordefinierte x-Position vorhanden ist. Sie wird dann automatisch festgelegt, sobald sich der Cursor das nächste Mal nach oben oder unten bewegt.
Siehe auch verticalMovementX().
void QTextCursor::setVisualNavigation(bool b)
Setzt die visuelle Navigation auf „ b “.
Visuelle Navigation bedeutet, dass versteckte Textabschnitte übersprungen werden. Der Standardwert ist „false“.
Siehe auch visualNavigation() und movePosition().
[noexcept] void QTextCursor::swap(QTextCursor &other)
Ersetzt diese Textcursor-Instanz durch „ other “. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
int QTextCursor::verticalMovementX() const
Gibt die visuelle x-Position für vertikale Cursorbewegungen zurück.
Der Wert -1 bedeutet, dass keine vordefinierte x-Position vorhanden ist. Diese wird dann automatisch festgelegt, sobald sich der Cursor das nächste Mal nach oben oder unten bewegt.
Siehe auch „ setVerticalMovementX()“.
bool QTextCursor::visualNavigation() const
Gibt „ true “ zurück, wenn der Cursor visuelle Navigation durchführt; andernfalls wird „ false “ zurückgegeben.
Visuelle Navigation bedeutet, dass versteckte Textabsätze übersprungen werden. Der Standardwert ist „false“.
Siehe auch setVisualNavigation() und movePosition().
bool QTextCursor::operator!=(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ an einer anderen Position im Dokument befindet als dieser Cursor; andernfalls wird „ false “ zurückgegeben.
bool QTextCursor::operator<(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ im Dokument weiter hinten befindet als dieser Cursor; andernfalls wird „ false “ zurückgegeben.
bool QTextCursor::operator<=(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ im Dokument an derselben oder einer späteren Position befindet als dieser Cursor; andernfalls wird „false“ zurückgegeben.
QTextCursor &QTextCursor::operator=(const QTextCursor &cursor)
Erstellt eine Kopie von „ cursor “ und weist sie „ QTextCursor “ zu. Beachten Sie, dass „ QTextCursor “ eine implizit gemeinsam genutzte Klasse ist.
bool QTextCursor::operator==(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ an derselben Position im Dokument befindet wie dieser Cursor; andernfalls wird „ false “ zurückgegeben.
bool QTextCursor::operator>(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ im Dokument an einer früheren Stelle befindet als dieser Cursor; andernfalls wird „ false “ zurückgegeben.
bool QTextCursor::operator>=(const QTextCursor &other) const
Gibt „ true “ zurück, wenn sich der Cursor „ other “ im Dokument an einer früheren oder derselben Position wie dieser Cursor befindet; andernfalls wird „false“ zurückgegeben.
© 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.