QTextCursor Class

QTextCursor クラスは、QTextDocuments にアクセスして変更するための API を提供します。詳細...

Header: #include <QTextCursor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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

パブリック関数

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

詳細説明

テキスト・カーソルは、テキストエディタのカーソルの動作を模倣したプログラミング・インターフェースを介して、テキスト・ドキュメントの内容や基本的な構造にアクセスし、変更するために使用されるオブジェクトです。QTextCursor は、QTextDocument 内のカーソルの位置と、カーソルが行った選択に関する情報を含んでいます。

QTextCursorは、テキストエディタにおけるテキストカーソルの動作をモデルにしており、ユーザーインターフェイスを通じて標準的なアクションを実行するためのプログラム的な手段を提供します。ドキュメントは1つの文字列と考えることができます。カーソルの現在のposition ()は、常に文字列の連続する2文字の間か、文字列の最初の文字の前か、最後の文字の後のどちらかになります。ドキュメントには、テキスト以外に表、リスト、画像、その他のオブジェクトが含まれることもありますが、開発者の視点からは、ドキュメントは1つの長い文字列として扱うことができます。その文字列の一部は、特定のブロック(段落など)内、あるいは表のセル内、リストの項目内、その他の構造要素内にあると考えることができます。現在の文字」とは、文書中のカーソルposition() の直前の文字を意味します。同様に、「現在のブロック」とは、カーソルposition() を含むブロックのことです。

QTextCursor にもanchor() の位置があります。anchor() とposition() の間にあるテキストが選択範囲です。anchor() ==position() の場合、選択はありません。

カーソルの位置は、setPosition() およびmovePosition() を使用してプログラムで変更できます。選択については、selectionStart()、selectionEnd()、hasSelection()、clearSelection()、removeSelectedText() を参照。

position() がブロックの先頭の場合、atBlockStart() はtrue を返し、ブロックの末尾の場合、atBlockEnd() は true を返す。現在の文字の書式はcharFormat() で返され、現在のブロックの書式はblockFormat() で返される。

setCharFormat(),mergeCharFormat(),setBlockFormat(),mergeBlockFormat() 関数を使用して、現在のテキスト文書に書式を適用することができます。set'関数はカーソルの現在の文字またはブロックの書式を置換し、'merge'関数は与えられた書式プロパティをカーソルの現在の書式に追加する。カーソルに選択範囲がある場合、指定された書式は現在の選択範囲に適用される。ブロックの一部だけが選択されている場合、ブロック書式はブロック全体に適用されることに注意してください。現在の文字位置のテキストは、createList ()を使ってリストにすることができる。

削除はdeleteChar()、deletePreviousChar()、removeSelectedText() を使って行う。

テキスト文字列はinsertText() 関数で文書に挿入できます。ブロック (新しい段落を表す) はinsertBlock() で挿入できます。

既存のテキストの断片はinsertFragment() で挿入できますが、さまざまな形式のテキストを挿入したい場合は、insertText() を使って文字形式を指定したほうが簡単です。

カーソルを使って、さまざまな種類の上位構造を文書に挿入することもできます:

  • リストは、箇条書きや記号で装飾されたブロック要素の順序付きシーケンスです。これらはinsertList() で指定した書式で挿入されます。
  • 表はinsertTable ()関数で挿入され、任意の書式を指定することができます。表にはセルの配列が含まれ、カーソルを使って移動することができます。
  • インライン画像はinsertImage() で挿入します。使用する画像は、画像形式または名前で指定できます。
  • フレームは、insertFrame ()を指定されたフォーマットで呼び出すことで挿入される。

beginEditBlock() およびendEditBlock() を使用すると、アクションをグループ化できる(つまり、アンドゥ/リドゥを 1 つのアクションとして扱える)。

カーソルの移動は、有効なカーソル位置に限定される。ラテン文字では、テキスト中の連続する2文字の間、最初の文字の前、最後の文字の後です。他の文字システムでは、カーソル移動は「クラスター」(デーヴァナーガリー語の音節や、基本文字と発音区別記号など)に制限されるものもあります。movePosition() やdeleteChar() のような関数は、カーソルの移動をこれらの有効な位置に制限する。

リッチテキスト処理も参照のこと

メンバ型ドキュメント

enum QTextCursor::MoveMode

定数説明
QTextCursor::MoveAnchor0アンカーをカーソル自身と同じ位置に移動します。
QTextCursor::KeepAnchor1アンカーを現在の位置に維持します。

anchor() の位置を維持したままposition() を移動すると、その間のテキストが選択されます。

enum QTextCursor::MoveOperation

定数説明
QTextCursor::NoMove0カーソルの位置を保持
QTextCursor::Start1文書の先頭に移動する。
QTextCursor::StartOfLine3現在の行の先頭に移動する。
QTextCursor::StartOfBlock4現在のブロックの先頭に移動する。
QTextCursor::StartOfWord5現在の単語の先頭に移動する。
QTextCursor::PreviousBlock6前のブロックの先頭に移動する。
QTextCursor::PreviousCharacter7前の文字に移動する。
QTextCursor::PreviousWord8前の単語の先頭に移動
QTextCursor::Up21行上に移動
QTextCursor::Left9左に1文字移動
QTextCursor::WordLeft10左に1文字移動
QTextCursor::End11文書の末尾に移動する。
QTextCursor::EndOfLine13現在の行の最後に移動する。
QTextCursor::EndOfWord14現在の単語の末尾に移動
QTextCursor::EndOfBlock15現在のブロックの末尾に移動
QTextCursor::NextBlock16次のブロックの先頭に移動
QTextCursor::NextCharacter17次の文字に移動する。
QTextCursor::NextWord18次の単語に移動する。
QTextCursor::Down121行下に移動
QTextCursor::Right19右に1文字移動
QTextCursor::WordRight20右に1単語移動
QTextCursor::NextCell21現在の表内の次の表のセルの先頭に移動する。現在のセルが行の最後のセルの場合、カーソルは次の行の最初のセルに移動する。
QTextCursor::PreviousCell22現在の表内の前の表のセルの先頭に移動する。現在のセルが行の最初のセルの場合、カーソルは前の行の最後のセルに移動する。
QTextCursor::NextRow23現在の表の次の行の最初の新しいセルに移動する。
QTextCursor::PreviousRow24現在の表の前の行の最後のセルに移動する。

movePosition()も参照のこと

enum QTextCursor::SelectionType

この列挙型は、select() 関数で適用できる選択の種類を記述します。

定数説明
QTextCursor::Document3文書全体を選択します。
QTextCursor::BlockUnderCursor2カーソル下のテキストブロックを選択します。
QTextCursor::LineUnderCursor1カーソル下のテキスト行を選択します。
QTextCursor::WordUnderCursor0カーソル下の単語を選択する。カーソルが選択可能な文字列内にない場合、テキストは選択されない。

メンバ関数ドキュメント

QTextCursor::QTextCursor()

NULLカーソルを構築する。

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

document の先頭を指すカーソルを構築する。

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

frame の先頭を指すカーソルを構築する。

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

block の先頭を指すカーソルを構築する。

QTextCursor::QTextCursor(const QTextCursor &cursor)

cursor のコピーである新しいカーソルを構築する。

[noexcept] QTextCursor::~QTextCursor()

QTextCursor を破棄する。

int QTextCursor::anchor() const

アンカー位置を返す。これは、position() と同じであるが、選択範囲がある場合は、position() が選択範囲の一方の端を示し、anchor() がもう一方の端を示す。カーソル位置と同様に、アンカー位置は文字と文字の間になります。

position(),setPosition(),movePosition(),selectionStart(),selectionEnd()も参照のこと

bool QTextCursor::atBlockEnd() const

カーソルがブロックの末尾にある場合はtrue を返し、そうでない場合はfalse を返す。

atBlockStart() およびatEnd()も参照

bool QTextCursor::atBlockStart() const

カーソルがブロックの先頭にある場合はtrue を返し、そうでない場合はfalse を返す。

atBlockEnd() およびatStart() も参照

bool QTextCursor::atEnd() const

カーソルがドキュメントの末尾にある場合はtrue を返し、そうでない場合はfalse を返す。

atStart() およびatBlockEnd() も参照

bool QTextCursor::atStart() const

カーソルがドキュメントの先頭にある場合はtrue を返し、そうでない場合はfalse を返す。

atBlockStart() およびatEnd() も参照

void QTextCursor::beginEditBlock()

文書に対する編集操作のブロックの開始を表し、アンドゥ/リドゥの観点からは単一の操作として表示されます。

例えば

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

textDocument->undo();

undo()を呼び出すと、両方の挿入が取り消され、"World "と "Hello "の両方が削除される。

beginEditBlockとendEditBlock 。一番上のペアが、元に戻す/やり直す操作の範囲を決定する。

endEditBlock()も参照

QTextBlock QTextCursor::block() const

カーソルを含むブロックを返す。

QTextCharFormat QTextCursor::blockCharFormat() const

カーソルがあるブロックのブロック文字フォーマットを返す。

ブロック文字書式は、空のブロックの先頭にテキストを挿入するときに使用される書式です。

setBlockCharFormat()も参照

QTextBlockFormat QTextCursor::blockFormat() const

カーソルがあるブロックのブロック書式を返します。

setBlockFormat() およびcharFormat() も参照

int QTextCursor::blockNumber() const

カーソルがあるブロックの番号、またはカーソルが無効な場合は 0 を返す。

この関数は、テーブルやフレームなどの複雑なオブジェクトを持たない文書においてのみ意味を持つことに注意。

QTextCharFormat QTextCursor::charFormat() const

カーソルの直前の文字の書式を返すposition()。カーソルが空でないテキストブロックの先頭に位置している場合は、カーソルの直後の文字の書式が返されます。

setCharFormat()、insertText()、blockFormat()も参照

void QTextCursor::clearSelection()

アンカーをカーソル位置に設定することで、現在の選択範囲をクリアする。

選択範囲のテキストは削除されないことに注意。

removeSelectedText() およびhasSelection()も参照

int QTextCursor::columnNumber() const

カーソルが含まれる行内の位置を返す。

これは、折り返し行からの相対的な列番号であり、ブロック(段落)からの相対的な列番号ではないことに注意。

おそらく、代わりにpositionInBlock() を呼び出すことになるでしょう。

positionInBlock()も参照

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

与えられたformat を持つ新しいリストを作成し、それを返します。

insertList() およびcurrentList() も参照

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

これはオーバーロードされた関数です。

与えられたstyle で新しいリストを作成し、カーソルの現在の段落を最初のリスト項目として返します。

使用されるスタイルはQTextListFormat::Style enumで定義されます。

insertList() およびcurrentList()も参照してください

QTextFrame *QTextCursor::currentFrame() const

現在のフレームへのポインタを返します。カーソルが無効な場合はnullptr を返す。

insertFrame()も参照

QTextList *QTextCursor::currentList() const

カーソルposition() がリストの一部であるブロック内にある場合、現在のリストを返す。そうでない場合はnullptr を返す。

insertList() およびcreateList() も参照

QTextTable *QTextCursor::currentTable() const

カーソルposition() がテーブルの一部であるブロック内にある場合は、現在のテーブルへのポインタを返します; そうでない場合はnullptr を返します。

insertTable()も参照して ください。

void QTextCursor::deleteChar()

選択テキストがない場合は、現在のカーソル位置の文字を削除します。

deletePreviousChar()、hasSelection()、およびclearSelection() も参照

void QTextCursor::deletePreviousChar()

選択テキストがない場合は、現在のカーソル位置の前の文字を削除し、それ以外の場合は選択テキストを削除します。

deleteChar()、hasSelection()、およびclearSelection()も参照

QTextDocument *QTextCursor::document() const

このカーソルが関連付けられているドキュメントを返します。

void QTextCursor::endEditBlock()

ドキュメントに対する編集操作のブロックの終了を表しますが、アンドゥ/リドゥの観点からは単一の操作として表示されます。

beginEditBlock()も参照

bool QTextCursor::hasComplexSelection() const

カーソルがselectionStart() からselectionEnd() までの単純な範囲ではない選択範囲を含んでいる場合はtrue を返し、そうでない場合はfalse を返す。

複雑な選択範囲とは、テーブルの少なくとも2つのセルにまたがる選択範囲のことで、その範囲はselectedTableCells() で指定します。

bool QTextCursor::hasSelection() const

カーソルが選択範囲を含んでいる場合はtrue を返し、そうでない場合はfalse を返します。

void QTextCursor::insertBlock()

カーソルposition() に、現在のblockFormat() とcharFormat() で新しい空のブロックを挿入します。

setBlockFormat()も参照

void QTextCursor::insertBlock(const QTextBlockFormat &format)

これはオーバーロードされた関数です。

カーソルposition() に、ブロック書式format および現在のcharFormat() を char ブロック書式として、新しい空のブロックを挿入します。

setBlockFormat()も参照のこと

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

これはオーバーロードされた関数です。

カーソルposition() に、ブロック書式format とブロック文字書式charFormat で新しい空のブロックを挿入します。

setBlockFormat()も参照

void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)

テキストfragment を現在のposition() に挿入します。

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

現在のカーソルposition() に、指定されたformat を持つフレームを挿入し、カーソルposition() をフレーム内に移動させ、フレームを返します。

カーソルが選択範囲を保持している場合、選択範囲全体がフレーム内に移動します。

hasSelection()も参照

void QTextCursor::insertHtml(const QString &html)

テキストhtml を現在のposition() に挿入します。テキストは HTML として解釈されます。

注意: スタイルシートと共にこの関数を使用する場合、スタイルシートは文書内の現在のブロックにのみ適用されます。ドキュメント全体にスタイルシートを適用するには、代わりにQTextDocument::setDefaultStyleSheet() を使用してください。

void QTextCursor::insertImage(const QTextImageFormat &format)

format で定義された画像を、現在のposition() に挿入します。

void QTextCursor::insertImage(const QString &name)

これはオーバーロードされた関数です。

指定されたname の画像を現在のposition() に挿入するための便利なメソッド。

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

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

これはオーバーロードされた関数です。

現在のposition()に、指定されたimage とオプションのname を挿入するための便利な関数。

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

これはオーバーロードされた関数です。

与えられたformat で定義された画像を、指定されたalignment とともにカーソルの現在位置に挿入する。

position()も参照

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

新しいブロックを現在の位置に挿入し、そのブロックを、指定されたformat で新しく作成されたリストの最初のリスト項目にします。作成されたリストを返します。

currentList()、createList()、およびinsertBlock() も参照して ください。

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

これはオーバーロードされた関数です。

現在の位置に新しいブロックを挿入し、そのブロックを、与えられたstyle で新しく作成されたリストの最初のリスト項目にします。作成されたリストを返します。

currentList()、createList() およびinsertBlock()も参照して ください。

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

現在のposition() に、指定した Markdownfeaturesmarkdown テキストを挿入します。デフォルトは GitHub 方言です。

この関数は Qt 6.4 で導入されました。

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

指定されたformat で、指定された数のrowscolumns を持つ新しいテーブルを作成し、ドキュメントの現在のカーソルposition() に挿入し、テーブルオブジェクトを返します。カーソルは最初のセルの先頭に移動します。

テーブルには、少なくとも1つの行と1つの列がなければなりません。

currentTable()も参照のこと

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

これはオーバーロードされた関数です。

与えられた数のrowscolumns で新しい表を作成し、それをドキュメントの現在のカーソルposition() に挿入し、表オブジェクトを返します。カーソルは最初のセルの先頭に移動します。

テーブルには、少なくとも1つの行と1つの列が必要です。

currentTable()も参照

void QTextCursor::insertText(const QString &text)

現在の位置に、現在の文字書式でtext を挿入します。

選択範囲がある場合、その選択範囲は削除され、例えばtext で置き換えられます:

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

これは、既存の選択範囲をすべて消去し、カーソル位置の単語(すなわち、position() から先)を選択し、選択範囲を "Hello World" というフレーズで置き換える。

挿入されたテキスト内の ASCII 改行文字 (\n) は、insertBlock() 呼び出しに対応する unicode ブロック区切り文字に変換されます。

charFormat() およびhasSelection()も参照してください

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

これはオーバーロードされた関数です。

与えられたformat で、現在の位置にtext を挿入します。

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

このカーソルとother が互いのコピーである場合、すなわち、どちらかがもう一方のコピーとして作成され、その後どちらも移動していない場合、true を返す。これは等価よりもはるかに厳格です。

operator=() およびoperator==()も参照してください

bool QTextCursor::isNull() const

カーソルがNULLの場合、true を返します。そうでない場合、false を返します。NULLカーソルはデフォルトのコンストラクタで作成されます。

void QTextCursor::joinPreviousEditBlock()

beginEditBlock() と同様に、アンドゥ/リドゥのための単一の操作として表示されるべき編集操作のブロックの開始を示す。しかし、beginEditBlock() とは異なり、新しいブロックを開始するのではなく、endEditBlock() を呼び出す前の操作を取り消すため、次の操作は前に作成された編集ブロックの一部となります。

例えば

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

// ...

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

textDocument->undo();

undo()を呼び出すと、3つの挿入がすべて取り消されます。

beginEditBlock() およびendEditBlock()も参照

bool QTextCursor::keepPositionOnInsert() const

カーソルの位置にテキストが挿入されたときに、カーソルの現在位置を保持するかどうかを返します。

デフォルトは false です;

setKeepPositionOnInsert()も参照

void QTextCursor::mergeBlockCharFormat(const QTextCharFormat &modifier)

現在のブロック(または選択範囲に含まれるすべてのブロック)のブロック文字書式を、modifier で指定されたブロック書式で変更します。

setBlockCharFormat()も参照

void QTextCursor::mergeBlockFormat(const QTextBlockFormat &modifier)

現在のブロック (または選択範囲に含まれるすべてのブロック) のブロック書式を、modifier で指定されたブロック書式に変更します。

setBlockFormat() およびblockFormat() も参照

void QTextCursor::mergeCharFormat(const QTextCharFormat &modifier)

カーソルの現在の文字書式を、書式modifier で記述されたプロパティにマージする。カーソルに選択範囲がある場合、この関数は、modifier で設定されたすべてのプロパティを、選択範囲の一部であるすべての文字書式に適用する。

hasSelection() およびsetCharFormat()も参照のこと

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

指定されたmode を使用して、指定されたoperation n を何度も実行することによってカーソルを移動し、すべての操作が正常に完了した場合はtrue を返し、そうでない場合はfalse を返す。

例えば、この関数を繰り返し使用して次の単語の末尾をシークすると、最終的に文書の末尾に到達した時点で失敗します。

デフォルトでは、移動操作は1回だけ行われる (n = 1)。

modeKeepAnchor の場合、カーソルは移動したテキストを選択する。これは、ユーザーがShiftキーを押しながらカーソルキーでカーソルを移動させたときと同じ効果である。

setVisualNavigation()も参照のこと

int QTextCursor::position() const

ドキュメント内のカーソルの絶対位置を返す。カーソルは文字と文字の間に配置される。

注意: この場合の "文字 "とは、QChar オブジェクトの文字列、すなわち16ビットのUnicode文字を指し、位置はこの文字列のインデックスとみなされます。サロゲートペアや言語的合字や発音区分のように、1つの書記素が複数のUnicode文字で表現されることがあるからです。

setPosition(),movePosition(),anchor(),positionInBlock()も参照

int QTextCursor::positionInBlock() const

ブロック内のカーソルの相対位置を返す。カーソルは文字と文字の間に配置される。

これはposition() - block().position() と等価である。

注: この場合の "文字 "は、QChar オブジェクトの文字列、すなわち16ビットのUnicode文字を指し、位置はこの文字列のインデックスとみなされる。サロゲートペアや言語的合字、発音区分のように、1つの書記素が複数のUnicode文字で表現されることがあるからです。

position()も参照してください

void QTextCursor::removeSelectedText()

選択範囲があればその内容を削除し、なければ何もしません。

hasSelection()も参照

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

与えられたselection に従って、文書内のテキストを選択します。

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

選択範囲が表のセルにまたがっている場合は、firstRow に選択範囲の最初の行の番号が、firstColumn に選択範囲の最初の列の番号が、numRowsnumColumns に選択範囲の行と列の番号が入ります。選択範囲がテーブルのセルにまたがっていない場合、結果は無害ですが未定義です。

QString QTextCursor::selectedText() const

現在の選択範囲のテキストを返します(空でもかまいません)。これはテキストのみを返し、リッチテキスト書式情報は返しません。ドキュメントの断片 (書式付きリッチテキスト) が必要な場合は、代わりにselection() を使用します。

注意: エディタから取得した選択範囲が改行にまたがる場合、テキストには改行\n 文字の代わりに Unicode U+2029 段落区切り文字が含まれます。これらの文字を改行に置き換えるにはQString::replace() を使ってください。

QTextDocumentFragment QTextCursor::selection() const

カ レ ン ト 選択範囲 (空で も か ま い ません) を、 そのすべての組版情報 と と も に返 し ます。選択したテキスト (すなわちプレーンテキスト) だけが必要な場合は、代わりにselectedText() を使用します。

注意: QTextDocumentFragment::toPlainText() とは異なり、selectedText() にはQChar::ParagraphSeparator のような特殊な unicode 文字が含まれることがあります。

QTextDocumentFragment::toPlainText()も参照

int QTextCursor::selectionEnd() const

選択範囲の終わりを返すか、カーソルに選択範囲がない場合はposition() を返す。

selectionStart()、position()、anchor() も参照

int QTextCursor::selectionStart() const

カーソルに選択範囲がない場合、選択範囲の開始位置またはposition() を返す。

selectionEnd()、position()、anchor() も参照

void QTextCursor::setBlockCharFormat(const QTextCharFormat &format)

現在のブロック(または選択範囲に含まれるすべてのブロック)のブロック文字書式をformat に設定します。

blockCharFormat()も参照

void QTextCursor::setBlockFormat(const QTextBlockFormat &format)

現在のブロック (または選択範囲に含まれるすべてのブロック) のブロック書式をformat に設定します。

blockFormat() およびmergeBlockFormat() も参照

void QTextCursor::setCharFormat(const QTextCharFormat &format)

カーソルの現在の文字書式を指定されたformat に設定します。カーソルに選択範囲がある場合、与えられたformat が現在の選択範囲に適用されます。

charFormat()、hasSelection()、mergeCharFormat()も参照

void QTextCursor::setKeepPositionOnInsert(bool b)

カーソルの現在位置にテキストが挿入されたとき、カーソルの現在位置を維持するかどうかを定義する。

b が真の場合、カーソルの位置にテキストが挿入されたとき、カーソルは現在位置を保持する。b が偽の場合、カーソルは挿入されたテキストと共に移動する。

デフォルトはfalseである。

カーソルの現在位置より前にテキストが挿入されると、カーソルは常に移動し、カーソルの現在位置より後にテキストが挿入されると、カーソルは常にその位置を維持することに注意してください。

keepPositionOnInsert()も参照のこと

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

m で指定されたMoveMode を使って、pos で指定されたドキュメント内の絶対位置にカーソルを移動する。カーソルは文字と文字の間に配置される。

注意: この場合の「文字」は、QChar オブジェクトの文字列、すなわち 16 ビット Unicode 文字を指し、pos はこの文字列へのインデックスとみなされます。サロゲートペアや言語的合字、ダイアクリティクスの場合など、1つの書記素が複数のUnicode文字で表現されることがあるからです。文書をナビゲートするためのより一般的なアプローチとしては、movePosition() を使ってください。これはテキスト中の実際の書記素境界を尊重します。

position(),movePosition(),anchor()も参照

void QTextCursor::setVerticalMovementX(int x)

垂直カーソル移動の視覚的 x 位置をx に設定。

垂直移動の x 位置は、カーソルが水平に移動するときは自動的にクリアされ、カーソルが垂直に移動するときは変更されない。このメカニズムにより、カーソルはプロポーショナルフォントで視覚的に直線上を上下に移動し、短い行を緩やかに「ジャンプ」することができる。

値 -1 は、あらかじめ定義された x 位置がないことを示す。次にカーソルが上下に動いたときに自動的に設定される。

verticalMovementX()も参照

void QTextCursor::setVisualNavigation(bool b)

ビジュアル・ナビゲーションをb に設定する。

ビジュアル・ナビゲーションとは、隠れているテキストの段落をスキップすることです。デフォルトは false です。

visualNavigation() およびmovePosition()も参照

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

このテキスト・カーソルのインスタンスをother と交換します。この関数は非常に高速で、失敗することはありません。

int QTextCursor::verticalMovementX() const

カーソルの垂直移動の視覚的な x 位置を返します。

値 -1 は、定義済みの x 位置がないことを示す。この値は、カーソルが次に上下に動くときに自動的に設定される。

setVerticalMovementX()も参照のこと

bool QTextCursor::visualNavigation() const

カーソルがビジュアル・ナビゲーションを行う場合はtrue を返し、そうでない場合はfalse を返す。

ビジュアル・ナビゲーションとは、隠されたテキストの段落をスキップすることを意味する。デフォルトは false です。

setVisualNavigation() およびmovePosition() も参照

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

other カーソルが文書内でこのカーソルと異なる位置にある場合はtrue を返し、そうでない場合はfalse を返す。

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

other カーソルがこのカーソルよりもドキュメント内で後の位置にある場合はtrue を返し、そうでない場合はfalse を返す。

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

other カーソルがこのカーソルより後に位置するか、ドキュメント内でこのカーソルと同じ位置にある場合はtrue を返し、そうでない場合は false を返す。

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

cursor のコピーを作成し、それをこのQTextCursor に代入する。QTextCursor暗黙の共有クラスであることに注意。

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

other カーソルがこのカーソルとドキュメント内で同じ位置にある場合はtrue を返し、そうでない場合はfalse を返す。

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

other カーソルがこのカーソルよりもドキュメント内で前の位置にある場合はtrue を返し、そうでない場合はfalse を返す。

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

other カーソルが、このカーソルとドキュメント内で同じ位置か、より前に配置されている場合はtrue を返し、そうでない場合は false を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。