QTextCursor Class
Die Klasse QTextCursor bietet eine API für den Zugriff auf und die Bearbeitung von QTextDocuments. Mehr...
Kopfzeile: | #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 von Rich Text Processing APIs und Implicitly Shared Classes.
Hinweis: Alle Funktionen in 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 |
Detaillierte Beschreibung
Textcursor sind Objekte, die verwendet werden, um auf den Inhalt und die zugrunde liegende Struktur von Textdokumenten über eine Programmierschnittstelle zuzugreifen und diese zu verändern, die das Verhalten eines Cursors in einem Texteditor nachahmt. QTextCursor enthält Informationen sowohl über die Position des Cursors innerhalb von QTextDocument als auch über die von ihm getroffene Auswahl.
QTextCursor ist dem Verhalten eines Textcursors in einem Texteditor nachempfunden und bietet ein programmatisches Mittel zur Durchführung von Standardaktionen über die Benutzeroberfläche. Ein Dokument kann man sich als eine einzelne Zeichenkette vorstellen. Die aktuelle Position des Cursors position() befindet sich dann immer entweder zwischen zwei aufeinanderfolgenden Zeichen in der Zeichenkette oder vor dem ersten bzw. nach dem letzten Zeichen in der Zeichenkette. Dokumente können neben Text auch Tabellen, Listen, Bilder und andere Objekte enthalten, aber aus der Sicht des Entwicklers kann das Dokument als eine lange Zeichenfolge behandelt werden. Einige Teile dieser Zeichenkette können als innerhalb bestimmter Blöcke (z.B. Absätze), oder innerhalb einer Tabellenzelle, eines Listenelements oder anderer Strukturelemente liegend betrachtet werden. Wenn wir uns auf das "aktuelle Zeichen" beziehen, meinen wir das Zeichen unmittelbar vor dem Cursor position() im Dokument. Ebenso ist der "aktuelle Block" der Block, der den Cursor position() enthält.
Ein QTextCursor hat auch eine anchor() Position. Der Text, der sich zwischen anchor() und position() befindet, ist die Auswahl. Wenn anchor() == position() ist, gibt es keine Auswahl.
Die Cursorposition kann programmatisch mit setPosition() und movePosition() geändert werden; letztere kann auch zur Auswahl von Text verwendet werden. Für Markierungen siehe selectionStart(), selectionEnd(), hasSelection(), clearSelection() und removeSelectedText().
Wenn position() am Anfang eines Blocks steht, gibt atBlockStart() true
zurück, und wenn es am Ende eines Blocks steht, gibt atBlockEnd() true zurück. Das Format des aktuellen Zeichens wird von charFormat() zurückgegeben, und das Format des aktuellen Blocks von blockFormat().
Die Formatierung kann mit den Funktionen setCharFormat(), mergeCharFormat(), setBlockFormat() und mergeBlockFormat() auf das aktuelle Textdokument angewendet werden. Die 'set'-Funktionen ersetzen das aktuelle Zeichen- oder Blockformat der Schreibmarke, während die 'merge'-Funktionen die angegebenen Formateigenschaften zum aktuellen Format der Schreibmarke hinzufügen. Wenn der Cursor eine Auswahl hat, wird das angegebene Format auf die aktuelle Auswahl angewendet. Wenn nur ein Teil eines Blocks markiert ist, wird das Blockformat auf den gesamten Block angewandt. Der Text an der aktuellen Zeichenposition kann mit createList() in eine Liste umgewandelt werden.
Löschungen können mit deleteChar(), deletePreviousChar() und removeSelectedText() vorgenommen werden.
Textstrings 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, aber wenn Sie Textstücke in verschiedenen Formaten einfügen wollen, ist es in der Regel noch einfacher, insertText() zu verwenden und ein Zeichenformat anzugeben.
Auch verschiedene Arten von übergeordneten Strukturen können mit dem Cursor in das Dokument eingefügt werden:
- Listen sind geordnete Abfolgen von Blockelementen, die mit Aufzählungspunkten oder Symbolen versehen sind. Diese werden in einem bestimmten Format mit insertList() eingefügt.
- Tabellen werden mit der Funktion insertTable() eingefügt und können mit einem optionalen Format versehen werden. Sie enthalten eine Reihe von Zellen, durch die mit dem Cursor geblättert werden kann.
- Inline-Bilder werden mit insertImage() eingefügt. Das zu verwendende Bild kann in einem Bildformat oder mit einem Namen angegeben werden.
- Rahmen werden durch den Aufruf von insertFrame() mit einem bestimmten Format eingefügt.
Aktionen können mit beginEditBlock() und endEditBlock() gruppiert werden (d. h. als eine einzige Aktion für Rückgängigmachen/Wiederherstellen behandelt werden).
Cursorbewegungen sind auf gültige Cursorpositionen beschränkt. In der lateinischen Schrift ist dies zwischen zwei aufeinanderfolgenden Zeichen im Text, vor dem ersten Zeichen oder nach dem letzten Zeichen. In einigen anderen Schriftsystemen sind die 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 Processing.
Dokumentation der Mitgliedstypen
enum QTextCursor::MoveMode
Konstante | Wert | Beschreibung |
---|---|---|
QTextCursor::MoveAnchor | 0 | Verschiebt den Anker an dieselbe Position wie den Cursor selbst. |
QTextCursor::KeepAnchor | 1 | Lässt den Anker dort, wo er ist. |
Wenn anchor() an seiner Position bleibt und position() verschoben wird, wird der dazwischen liegende Text ausgewählt.
enum QTextCursor::MoveOperation
Konstante | Wert | Beschreibung |
---|---|---|
QTextCursor::NoMove | 0 | Den Cursor an der Stelle belassen, an der er sich befindet |
QTextCursor::Start | 1 | Bewegt sich zum Anfang des Dokuments. |
QTextCursor::StartOfLine | 3 | Geht zum Anfang der aktuellen Zeile. |
QTextCursor::StartOfBlock | 4 | Geht zum Anfang des aktuellen Blocks. |
QTextCursor::StartOfWord | 5 | Geht zum Anfang des aktuellen Wortes. |
QTextCursor::PreviousBlock | 6 | Zum Anfang des vorherigen Satzes. |
QTextCursor::PreviousCharacter | 7 | Sprung zum vorherigen Zeichen. |
QTextCursor::PreviousWord | 8 | Sprung zum Anfang des vorherigen Wortes. |
QTextCursor::Up | 2 | Eine Zeile nach oben gehen. |
QTextCursor::Left | 9 | Bewegen Sie sich ein Zeichen nach links. |
QTextCursor::WordLeft | 10 | Bewegen Sie sich ein Wort nach links. |
QTextCursor::End | 11 | Bewegen Sie sich zum Ende des Dokuments. |
QTextCursor::EndOfLine | 13 | Bewegen Sie sich zum Ende der aktuellen Zeile. |
QTextCursor::EndOfWord | 14 | Bewegen Sie sich zum Ende des aktuellen Wortes. |
QTextCursor::EndOfBlock | 15 | Bewegen zum Ende des aktuellen Blocks. |
QTextCursor::NextBlock | 16 | Bewegen zum Anfang des nächsten Blocks. |
QTextCursor::NextCharacter | 17 | Wechseln zum nächsten Zeichen. |
QTextCursor::NextWord | 18 | Wechseln zum nächsten Wort. |
QTextCursor::Down | 12 | Bewegen Sie sich eine Zeile nach unten. |
QTextCursor::Right | 19 | Bewegen Sie sich ein Zeichen nach rechts. |
QTextCursor::WordRight | 20 | Bewegen Sie sich ein Wort nach rechts. |
QTextCursor::NextCell | 21 | Bewegt sich an den Anfang der nächsten Tabellenzelle innerhalb der aktuellen Tabelle. Wenn die aktuelle Zelle die letzte Zelle in der Zeile ist, bewegt sich der Cursor auf die erste Zelle in der nächsten Zeile. |
QTextCursor::PreviousCell | 22 | Bewegt sich zum Anfang der vorherigen Tabellenzelle innerhalb der aktuellen Tabelle. Wenn die aktuelle Zelle die erste Zelle in der Zeile ist, bewegt sich der Cursor auf die letzte Zelle in der vorherigen Zeile. |
QTextCursor::NextRow | 23 | Bewegen Sie sich zur ersten neuen Zelle der nächsten Zeile in der aktuellen Tabelle. |
QTextCursor::PreviousRow | 24 | Bewegt sich auf die letzte Zelle der vorherigen Zeile in der aktuellen Tabelle. |
Siehe auch movePosition().
enum QTextCursor::SelectionType
Diese Aufzählung beschreibt die Arten der Auswahl, die mit der Funktion select() angewendet werden können.
Konstante | Wert | Beschreibung |
---|---|---|
QTextCursor::Document | 3 | Selektiert das gesamte Dokument. |
QTextCursor::BlockUnderCursor | 2 | Markiert den Textblock unter dem Cursor. |
QTextCursor::LineUnderCursor | 1 | Markiert die Textzeile unter dem Cursor. |
QTextCursor::WordUnderCursor | 0 | Markiert das Wort unter dem Cursor. Befindet sich der Cursor nicht innerhalb einer Zeichenkette mit auswählbaren Zeichen, wird kein Text ausgewählt. |
Dokumentation der Mitgliedsfunktionen
QTextCursor::QTextCursor()
Konstruiert einen Null-Cursor.
[explicit]
QTextCursor::QTextCursor(QTextDocument *document)
Konstruiert einen Cursor, der auf den Anfang der Datei document zeigt.
[explicit]
QTextCursor::QTextCursor(QTextFrame *frame)
Konstruiert einen Cursor, der auf den Anfang der Datei frame zeigt.
[explicit]
QTextCursor::QTextCursor(const QTextBlock &block)
Konstruiert einen Cursor, der auf den Anfang der Datei block zeigt.
QTextCursor::QTextCursor(const QTextCursor &cursor)
Konstruiert 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 ist dasselbe wie position(), es sei denn, es gibt eine Auswahl. In diesem Fall markiert position() ein Ende der Auswahl und anchor() das andere Ende. Genau wie die Cursorposition befindet sich die Ankerposition zwischen den 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 false
.
Siehe auch atBlockStart() und atEnd().
bool QTextCursor::atBlockStart() const
Gibt true
zurück, wenn der Cursor am Anfang eines Blocks steht; andernfalls false
.
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 false
.
Siehe auch atBlockStart() und atEnd().
void QTextCursor::beginEditBlock()
Zeigt den Beginn eines Blocks von Bearbeitungsvorgängen am Dokument an, die aus Sicht der Rückgängigmachung/Wiederherstellung als ein einziger Vorgang erscheinen sollen.
Zum Beispiel:
QTextCursor cursor(textDocument); cursor.beginEditBlock(); cursor.insertText("Hello"); cursor.insertText("World"); cursor.endEditBlock(); textDocument->undo();
Der Aufruf von undo() bewirkt, dass beide Einfügungen rückgängig gemacht werden, wodurch sowohl "World" als auch "Hello" entfernt werden.
Es ist möglich, Aufrufe von beginEditBlock und endEditBlock zu verschachteln. Das oberste Paar bestimmt den Umfang 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 der Schreibmarke position() zurück. 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 ihn enthaltenden Zeile zurück.
Beachten Sie, dass dies die Spaltennummer relativ zu einer umbrochenen Zeile ist, nicht relativ zum Block (d. h. zum Absatz).
Wahrscheinlich sollten Sie stattdessen positionInBlock() aufrufen.
Siehe auch positionInBlock().
QTextList *QTextCursor::createList(const QTextListFormat &format)
Erzeugt eine neue Liste mit dem angegebenen format und gibt sie zurück. Der aktuelle Absatz wird zum ersten Listenelement.
Siehe auch insertList() und currentList().
QTextList *QTextCursor::createList(QTextListFormat::Style style)
Dies ist eine überladene Funktion.
Erzeugt 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 das QTextListFormat::Style enum definiert.
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 markierter Text vorhanden ist, wird das Zeichen an der aktuellen Cursorposition gelöscht; andernfalls wird der markierte Text gelöscht.
Siehe auch deletePreviousChar(), hasSelection(), und clearSelection().
void QTextCursor::deletePreviousChar()
Wenn kein markierter Text vorhanden ist, wird das Zeichen vor der aktuellen Cursorposition gelöscht; ansonsten wird der markierte Text gelöscht.
Siehe auch deleteChar(), hasSelection(), und clearSelection().
QTextDocument *QTextCursor::document() const
Gibt das Dokument zurück, mit dem dieser Cursor verknüpft ist.
void QTextCursor::endEditBlock()
Zeigt das Ende eines Blocks von Bearbeitungsvorgängen am Dokument an, die vom Standpunkt des Rückgängigmachens/Wiederholens aus als ein einziger Vorgang erscheinen sollten.
Siehe auch beginEditBlock().
bool QTextCursor::hasComplexSelection() const
Gibt true
zurück, wenn der Cursor eine Auswahl enthält, die nicht einfach 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; ihre Ausdehnung 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 einen neuen leeren Block an der Schreibmarke position() mit den aktuellen blockFormat() und charFormat() ein.
Siehe auch setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format)
Dies ist eine überladene Funktion.
Fügt einen neuen leeren Block an der Schreibmarke position() mit dem Blockformat format und dem aktuellen charFormat() als Blockzeichenformat ein.
Siehe auch setBlockFormat().
void QTextCursor::insertBlock(const QTextBlockFormat &format, const QTextCharFormat &charFormat)
Dies ist eine überladene Funktion.
Fügt einen neuen leeren Block an der Schreibmarke position() mit dem Blockformat format und charFormat als Blockzeichenformat ein.
Siehe auch setBlockFormat().
void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)
Fügt den Text fragment an der aktuellen position() ein.
QTextFrame *QTextCursor::insertFrame(const QTextFrameFormat &format)
Fügt einen Rahmen mit dem angegebenen format an der aktuellen Cursorposition position() ein, bewegt den Cursor position() innerhalb des Rahmens und gibt den Rahmen zurück.
Wenn der Cursor eine Auswahl enthält, wird die gesamte Auswahl innerhalb des Rahmens bewegt.
Siehe auch hasSelection().
void QTextCursor::insertHtml(const QString &html)
Fügt den Text html an der aktuellen position() ein. Der Text wird als HTML interpretiert.
Hinweis: Wenn Sie diese Funktion mit einer Stilvorlage verwenden, wird die Stilvorlage nur auf den aktuellen Block im Dokument angewendet. Um eine Stilvorlage auf das gesamte Dokument anzuwenden, verwenden Sie stattdessen QTextDocument::setDefaultStyleSheet().
void QTextCursor::insertImage(const QTextImageFormat &format)
Fügt das durch format definierte Bild an der aktuellen position() ein.
void QTextCursor::insertImage(const QString &name)
Dies ist eine überladene Funktion.
Convenience-Methode zum Einfügen des Bildes mit der angegebenen name an der aktuellen position().
QImage img; textDocument->addResource(QTextDocument::ImageResource, QUrl("myimage"), img); cursor.insertImage("myimage");
void QTextCursor::insertImage(const QImage &image, const QString &name = QString())
Dies ist eine überladene Funktion.
Convenience-Funktion zum Einfügen der angegebenen image mit einem optionalen name an der aktuellen position().
void QTextCursor::insertImage(const QTextImageFormat &format, QTextFrameFormat::Position alignment)
Dies ist eine überladene Funktion.
Fügt das durch die angegebene format definierte Bild an der aktuellen Position des Cursors mit der angegebenen alignment ein.
Siehe auch position().
QTextList *QTextCursor::insertList(const QTextListFormat &format)
Fügt einen neuen Block an der aktuellen Position ein und macht ihn zum ersten Listenelement einer neu erstellten Liste mit der angegebenen format. Gibt die erstellte Liste zurück.
Siehe auch currentList(), createList(), und insertBlock().
QTextList *QTextCursor::insertList(QTextListFormat::Style style)
Dies ist eine überladene Funktion.
Fügt einen neuen Block an der aktuellen Position ein und macht ihn zum ersten Listenelement einer neu erstellten Liste mit der angegebenen style. Gibt die erstellte Liste zurück.
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() ein, mit dem angegebenen Markdown features. Die Vorgabe ist der GitHub-Dialekt.
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 im 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.
Es muss mindestens eine Zeile und eine Spalte in der Tabelle vorhanden sein.
Siehe auch currentTable().
QTextTable *QTextCursor::insertTable(int rows, int columns)
Dies ist eine überladene Funktion.
Erzeugt eine neue Tabelle mit der angegebenen Anzahl von rows und columns, fügt sie an der aktuellen Schreibmarke position() im Dokument ein und gibt das Tabellenobjekt zurück. Der Cursor wird an den Anfang der ersten Zelle gesetzt.
Es muss mindestens eine Zeile und eine Spalte in der Tabelle vorhanden sein.
Siehe auch currentTable().
void QTextCursor::insertText(const QString &text)
Fügt text an der aktuellen Position ein, wobei das aktuelle Zeichenformat verwendet wird.
Wenn eine Auswahl vorhanden ist, wird diese gelöscht und z. B. durch text ersetzt:
cursor.clearSelection(); cursor.movePosition(QTextCursor::NextWord, QTextCursor::KeepAnchor); cursor.insertText("Hello World");
Dies löscht eine vorhandene Auswahl, wählt das Wort am Cursor aus (d. h. von position() an) und ersetzt die Auswahl durch den Ausdruck "Hello World".
Alle ASCII-Zeilenvorschubzeichen (\n) im eingefügten Text werden in Unicode-Blocktrennzeichen umgewandelt, die den Aufrufen von insertBlock() entsprechen.
Siehe auch charFormat() und hasSelection().
void QTextCursor::insertText(const QString &text, const QTextCharFormat &format)
Dies ist eine überladene Funktion.
Fügt text an der aktuellen Position mit der angegebenen format ein.
bool QTextCursor::isCopyOf(const QTextCursor &other) const
Gibt true
zurück, wenn dieser Cursor und other Kopien voneinander sind, d. h. einer von ihnen wurde als Kopie des anderen erstellt und keiner von beiden hat sich seitdem bewegt. Dies ist viel strenger als Gleichheit.
Siehe auch operator=() und operator==().
bool QTextCursor::isNull() const
Gibt true
zurück, wenn der Cursor null ist; andernfalls false
. Ein Null-Cursor wird durch den Standardkonstruktor erstellt.
void QTextCursor::joinPreviousEditBlock()
Wie beginEditBlock() zeigt den Beginn eines Blocks von Bearbeitungsvorgängen an, die als ein einziger Vorgang zum Rückgängigmachen/Wiederherstellen erscheinen sollen. Im Gegensatz zu beginEditBlock() beginnt es jedoch keinen neuen Block, sondern macht den vorherigen Aufruf von endEditBlock() rückgängig und macht daher die folgenden Operationen zu einem Teil des zuvor erstellten Bearbeitungsblocks.
Ein 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 Position des Cursors eingefügt wird.
Die Vorgabe ist false;
Siehe auch setKeepPositionOnInsert().
void QTextCursor::mergeBlockCharFormat(const QTextCharFormat &modifier)
Ändert das Blockzeichenformat des aktuellen Blocks (oder aller Blöcke, die in der Auswahl enthalten sind) mit dem durch modifier angegebenen Blockformat.
Siehe auch setBlockCharFormat().
void QTextCursor::mergeBlockFormat(const QTextBlockFormat &modifier)
Ändert das Blockformat des aktuellen Blocks (oder aller Blöcke, die in der Auswahl enthalten sind) mit dem durch modifier angegebenen Blockformat.
Siehe auch setBlockFormat() und blockFormat().
void QTextCursor::mergeCharFormat(const QTextCharFormat &modifier)
Verbindet das aktuelle Zeichenformat des Cursors mit den durch das Format modifier beschriebenen Eigenschaften. 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 durch wiederholte Ausführung der angegebenen operation n unter Verwendung der angegebenen mode und gibt true
zurück, wenn alle Operationen erfolgreich abgeschlossen wurden; andernfalls gibt sie false
zurück.
Wenn diese Funktion beispielsweise wiederholt verwendet wird, um das Ende des nächsten Wortes zu suchen, wird sie schließlich fehlschlagen, wenn das Ende des Dokuments erreicht ist.
Standardmäßig wird die Verschiebeoperation einmal ausgeführt (n = 1).
Wenn mode gleich KeepAnchor
ist, markiert der Cursor den Text, über den er sich bewegt. Dies ist der gleiche 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 wird zwischen Zeichen positioniert.
Hinweis: Die "Zeichen" beziehen sich in diesem Fall auf die Zeichenfolge QChar, d. h. 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenfolge betrachtet. Dies entspricht nicht notwendigerweise einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie z. B. im Fall von Surrogatpaaren, linguistischen 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 wird zwischen den Zeichen positioniert.
Dies ist äquivalent zu position() - block().position()
.
Hinweis: Die "Zeichen" beziehen sich in diesem Fall auf die Zeichenfolge QChar, d. h. 16-Bit-Unicode-Zeichen, und die Position wird als Index in dieser Zeichenfolge betrachtet. Dies entspricht nicht notwendigerweise einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie z. B. im Fall von Surrogatpaaren, linguistischen Ligaturen oder diakritischen Zeichen.
Siehe auch position().
void QTextCursor::removeSelectedText()
Wenn eine Auswahl vorhanden ist, wird ihr Inhalt gelöscht; andernfalls geschieht nichts.
Siehe auch hasSelection().
void QTextCursor::select(QTextCursor::SelectionType selection)
Wählt den Text im Dokument entsprechend der 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 der Auswahl, firstColumn mit der Nummer der ersten Spalte der Auswahl und numRows und numColumns mit der Anzahl der Zeilen und Spalten der Auswahl gefüllt. Wenn sich die Auswahl nicht über Tabellenzellen erstreckt, sind die Ergebnisse harmlos, aber undefiniert.
QString QTextCursor::selectedText() const
Gibt den Text der aktuellen Auswahl zurück (der leer sein kann). Es wird nur der Text zurückgegeben, ohne Informationen zur Rich-Text-Formatierung. Wenn Sie ein Dokumentfragment (d.h. formatierten Rich-Text) wünschen, verwenden Sie stattdessen selection().
Hinweis: Wenn die von einem Editor erhaltene Auswahl einen Zeilenumbruch überspannt, enthält der Text ein Unicode U+2029-Absatztrennzeichen anstelle eines Zeilenumbruchs \n
Zeichen. 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) wünschen, verwenden Sie stattdessen selectedText().
Hinweis: Anders als QTextDocumentFragment::toPlainText() kann selectedText() spezielle Unicode-Zeichen wie QChar::ParagraphSeparator enthalten.
Siehe auch QTextDocumentFragment::toPlainText().
int QTextCursor::selectionEnd() const
Gibt das Ende der Auswahl zurück oder position(), wenn der Cursor keine Auswahl hat.
Siehe auch selectionStart(), position(), und anchor().
int QTextCursor::selectionStart() const
Gibt den Anfang der Auswahl zurück oder position(), wenn der Cursor keine Auswahl hat.
Siehe auch selectionEnd(), position(), und anchor().
void QTextCursor::setBlockCharFormat(const QTextCharFormat &format)
Setzt das Blockzeichenformat des aktuellen Blocks (oder aller Blöcke, die in der Auswahl enthalten sind) auf format.
Siehe auch blockCharFormat().
void QTextCursor::setBlockFormat(const QTextBlockFormat &format)
Setzt das Blockformat des aktuellen Blocks (oder aller Blöcke, die in der Auswahl enthalten sind) auf format.
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 Position des Cursors eingefügt wird.
Wenn b true ist, behält der Cursor seine aktuelle Position bei, wenn Text an der Position des Cursors eingefügt wird. Wenn b false ist, bewegt sich der Cursor zusammen mit dem eingefügten Text.
Die Voreinstellung ist false.
Beachten Sie, dass sich ein Cursor immer bewegt, wenn Text vor der aktuellen Position des Cursors eingefügt wird, und dass er seine Position immer beibehält, wenn Text nach der aktuellen Position des Cursors eingefügt wird.
Siehe auch keepPositionOnInsert().
void QTextCursor::setPosition(int pos, QTextCursor::MoveMode m = MoveAnchor)
Bewegt den Cursor an die absolute Position in dem durch pos angegebenen Dokument unter Verwendung eines durch m angegebenen MoveMode
. Der Cursor wird zwischen den Zeichen positioniert.
Hinweis: Die "Zeichen" beziehen sich in diesem Fall auf die Zeichenkette der QChar -Objekte, d. h. 16-Bit-Unicode-Zeichen, und pos wird als Index in dieser Zeichenkette betrachtet. Dies entspricht nicht notwendigerweise einzelnen Graphemen im Schriftsystem, da ein einzelnes Graphem durch mehrere Unicode-Zeichen dargestellt werden kann, wie z. B. im Fall von Surrogatpaaren, linguistischen Ligaturen oder diakritischen Zeichen. Für einen allgemeineren Ansatz zur Navigation im Dokument verwenden Sie movePosition(), das die tatsächlichen Graphemgrenzen im Text berücksichtigt.
Siehe auch position(), movePosition(), und anchor().
void QTextCursor::setVerticalMovementX(int x)
Setzt die visuelle x-Position für vertikale Cursorbewegungen auf x.
Die x-Position für die vertikale Bewegung wird automatisch gelöscht, wenn sich der Cursor horizontal bewegt, und bleibt unverändert, wenn sich der Cursor vertikal bewegt. Dieser Mechanismus ermöglicht es dem Cursor, sich auf einer visuell geraden Linie mit proportionalen Schriftarten auf und ab zu bewegen und sanft über kurze Zeilen zu "springen".
Ein Wert von -1 bedeutet, dass es keine vordefinierte X-Position gibt. Sie wird dann automatisch eingestellt, wenn 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 Textabsätze übersprungen werden. Der Standardwert ist false.
Siehe auch visualNavigation() und movePosition().
[noexcept]
void QTextCursor::swap(QTextCursor &other)
Tauscht diese Textcursor-Instanz mit other aus. Dieser Vorgang ist sehr schnell und schlägt nie fehl.
int QTextCursor::verticalMovementX() const
Gibt die visuelle X-Position für vertikale Cursorbewegungen zurück.
Ein Wert von -1 bedeutet, dass es keine vordefinierte X-Position gibt. Sie wird dann automatisch gesetzt, wenn 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 eine 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 der Cursor other später im Dokument positioniert ist als dieser Cursor; andernfalls wird false
zurückgegeben.
bool QTextCursor::operator<=(const QTextCursor &other) const
Gibt true
zurück, wenn der Cursor other später oder an der gleichen Stelle im Dokument wie dieser Cursor positioniert ist; andernfalls wird false zurückgegeben.
QTextCursor &QTextCursor::operator=(const QTextCursor &cursor)
Erzeugt eine Kopie von cursor und weist sie dieser 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 der gleichen Stelle im Dokument befindet wie dieser Cursor; andernfalls wird false
zurückgegeben.
bool QTextCursor::operator>(const QTextCursor &other) const
Gibt true
zurück, wenn der Cursor other früher im Dokument positioniert ist als dieser Cursor; andernfalls wird false
zurückgegeben.
bool QTextCursor::operator>=(const QTextCursor &other) const
Gibt true
zurück, wenn der other Cursor früher oder an der gleichen Position im Dokument wie dieser Cursor positioniert ist; andernfalls wird false zurückgegeben.
© 2025 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.