Auf dieser Seite

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

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

KonstanteWertBeschreibung
QTextCursor::MoveAnchor0Verschiebt den Anker an die Position des Cursors.
QTextCursor::KeepAnchor1Behä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

KonstanteWertBeschreibung
QTextCursor::NoMove0Cursor an der aktuellen Position belassen
QTextCursor::Start1Zum Anfang des Dokuments springen.
QTextCursor::StartOfLine3Zum Anfang der aktuellen Zeile springen.
QTextCursor::StartOfBlock4Zum Anfang des aktuellen Blocks springen.
QTextCursor::StartOfWord5Zum Anfang des aktuellen Wortes springen.
QTextCursor::PreviousBlock6Springe zum Anfang des vorherigen Blocks.
QTextCursor::PreviousCharacter7Zum vorherigen Zeichen springen.
QTextCursor::PreviousWord8Springe zum Anfang des vorherigen Wortes.
QTextCursor::Up2Eine Zeile nach oben springen.
QTextCursor::Left9Ein Zeichen nach links springen.
QTextCursor::WordLeft10Um ein Wort nach links springen.
QTextCursor::End11Zum Ende des Dokuments springen.
QTextCursor::EndOfLine13Zum Ende der aktuellen Zeile springen.
QTextCursor::EndOfWord14Zum Ende des aktuellen Wortes springen.
QTextCursor::EndOfBlock15Zum Ende des aktuellen Blocks springen.
QTextCursor::NextBlock16Zum Anfang des nächsten Blocks springen.
QTextCursor::NextCharacter17Zum 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::NextWord18Springe zum nächsten Wort.
QTextCursor::Down12Eine Zeile nach unten springen.
QTextCursor::Right19Springe ein Zeichen nach rechts.
QTextCursor::WordRight20Bewegung um ein Wort nach rechts.
QTextCursor::NextCell21Springe 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::PreviousCell22Springe 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::NextRow23Springe zur ersten neuen Zelle der nächsten Zeile in der aktuellen Tabelle.
QTextCursor::PreviousRow24Springe 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.

KonstanteWertBeschreibung
QTextCursor::Document3Wählt das gesamte Dokument aus.
QTextCursor::BlockUnderCursor2Wählt den Textblock unter dem Cursor aus.
QTextCursor::LineUnderCursor1Wählt die Textzeile unter dem Cursor aus.
QTextCursor::WordUnderCursor0Wä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.