이 페이지에서

QTextCursor Class

QTextCursor 클래스는 QTextDocument에 접근하고 이를 수정할 수 있는 API를 제공합니다. 더 보기...

헤더: #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는 QDocument( QTextDocument ) 내의 커서 위치와 커서가 선택한 영역에 대한 정보를 모두 포함합니다.

QTextCursor는 텍스트 편집기에서 텍스트 커서가 동작하는 방식을 모델로 하여, 사용자 인터페이스를 통해 표준 작업을 수행할 수 있는 프로그래밍적 수단을 제공합니다. 문서는 하나의 문자열로 생각할 수 있습니다. 따라서 커서의 현재 위치( position())는 항상 문자열 내의 두 연속된 문자 사이에 있거나, 문자열의 맨 첫 번째 문자 앞 또는 맨 마지막 문자 뒤에 있습니다. 문서에는 텍스트 외에도 표, 목록, 이미지 및 기타 객체가 포함될 수 있지만, 개발자의 관점에서 문서는 하나의 긴 문자열로 취급될 수 있습니다. 이 문자열의 일부는 특정 블록(예: 단락) 내, 테이블의 셀 내, 목록의 항목 내, 또는 기타 구조적 요소 내에 위치한다고 볼 수 있습니다. “현재 문자”란 문서 내에서 커서 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()를 사용하여 동작을 그룹화(즉, 실행 취소/다시 실행 시 단일 동작으로 취급)할 수 있습니다.

커서 이동은 유효한 커서 위치로 제한됩니다. 라틴 문자 체계에서는 텍스트 내의 연속된 두 문자 사이, 첫 번째 문자 앞, 또는 마지막 문자 뒤입니다. 일부 다른 문자 체계에서는 커서 이동이 “클러스터”(예: 데바나가리 문자 체계의 음절, 또는 기본 문자 및 분음 부호)로 제한됩니다. 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::Up2한 줄 위로 이동합니다.
QTextCursor::Left9한 글자 왼쪽으로 이동합니다.
QTextCursor::WordLeft10한 단어 왼쪽으로 이동합니다.
QTextCursor::End11문서 끝으로 이동합니다.
QTextCursor::EndOfLine13현재 줄의 끝으로 이동합니다.
QTextCursor::EndOfWord14현재 단어의 끝으로 이동합니다.
QTextCursor::EndOfBlock15현재 블록의 끝으로 이동합니다.
QTextCursor::NextBlock16다음 블록의 시작 부분으로 이동합니다.
QTextCursor::NextCharacter17다음 문자로 이동합니다. 텍스트가 선택된 경우, movePosition(NextCharacter, MoveAnchor) 를 처음 호출하면 커서를 이동하지 않고 텍스트 선택을 해제합니다.
QTextCursor::NextWord18다음 단어로 이동합니다.
QTextCursor::Down12한 줄 아래로 이동합니다.
QTextCursor::Right19한 글자 오른쪽으로 이동합니다.
QTextCursor::WordRight20한 단어 오른쪽으로 이동합니다.
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 ` 열거형에 의해 정의됩니다.

이 함수는 오버로드된 함수입니다.

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 를 반환합니다.

복합 선택 영역이란 테이블 내에서 최소 두 개의 셀에 걸쳐 있는 선택 영역을 말하며, 그 범위는 selectedTableCells()로 지정됩니다.

bool QTextCursor::hasSelection() const

커서에 선택 영역이 포함되어 있으면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

void QTextCursor::insertBlock()

커서 위치 position()에 현재 blockFormat() 및 charFormat()를 포함하는 새로운 빈 블록을 삽입합니다.

setBlockFormat()도 참조하십시오 .

void QTextCursor::insertBlock(const QTextBlockFormat &format)

커서 위치 position()에 블록 형식 format 을 가진 새로운 빈 블록을 삽입하며, 블록 문자 형식으로 현재 charFormat()을 사용합니다.

이 함수는 오버로드된 함수입니다.

setBlockFormat()도 참조하십시오 .

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

커서 위치 position()에 블록 형식 format, 블록 문자 형식 charFormat 을 가진 새로운 빈 블록을 삽입합니다.

이 함수는 오버로드된 함수입니다.

setBlockFormat()도 참조하십시오 .

void QTextCursor::insertFragment(const QTextDocumentFragment &fragment)

현재 position() 위치에 “ fragment ”라는 텍스트를 삽입합니다.

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

지정된 format 를 가진 프레임을 현재 커서 위치 position()에 삽입하고, 커서 position()를 프레임 내부로 이동시킨 후, 해당 프레임을 반환합니다.

커서에 선택 영역이 있는 경우, 선택 영역 전체가 프레임 안으로 이동됩니다.

hasSelection()도 참조하십시오 .

void QTextCursor::insertHtml(const QString &html)

현재 position() 위치에 “ html ”이라는 텍스트를 삽입합니다. 이 텍스트는 HTML로 해석됩니다.

참고: 이 함수를 스타일시트와 함께 사용할경우 , 스타일시트는 문서의 현재 블록에만 적용됩니다. 문서 전체에 스타일시트를 적용하려면 대신 QTextDocument::setDefaultStyleSheet()을 사용하십시오.

void QTextCursor::insertImage(const QTextImageFormat &format)

format 로 정의된 이미지를 현재 position() 위치에 삽입합니다.

void QTextCursor::insertImage(const QString &name)

현재 position() 위치에 주어진 name 이미지를 삽입하는 편리한 메서드입니다.

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())에 지정된 마크다운( features) 형식의 “ markdown ” 텍스트를 삽입합니다. 기본값은 GitHub 방언입니다.

이 함수는 Qt 6.4에서 도입되었습니다.

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

지정된 format 내에 주어진 개수의 rows 및 columns 로 구성된 새 테이블을 생성하고, 이를 문서 내 현재 커서 위치 position()에 삽입한 뒤 테이블 객체를 반환합니다. 커서는 첫 번째 셀의 시작 부분으로 이동합니다.

테이블에는 최소한 한 행과 한 열이 있어야 합니다.

currentTable()도 참조하십시오 .

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

지정된 행 rows 과 열 columns 수를 가진 새 표를 생성하고, 이를 문서의 현재 커서 위치 position()에 삽입한 다음, 표 객체를 반환합니다. 커서는 첫 번째 셀의 시작 부분으로 이동합니다.

테이블에는 최소한 한 개의 행과 한 개의 열이 있어야 합니다.

이 함수는 오버로드된 함수입니다.

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() 호출에 해당하는 유니코드 블록 구분자로 변환됩니다.

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()를 호출하면 세 번의 삽입 작업이 모두 취소됩니다.

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)

커서의 현재 문자 서식을 `format` modifier 에 정의된 속성과 병합합니다. 커서에 선택 영역이 있는 경우, 이 함수는 ` modifier `에 설정된 모든 속성을 선택 영역에 포함된 모든 문자 서식에 적용합니다.

hasSelection() 및 setCharFormat()도 참조하십시오 .

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

지정된 operation 을 n 번 반복하여, 지정된 mode 을 사용하여 커서를 이동시키고, 모든 작업이 성공적으로 완료되면 true 을 반환하며, 그렇지 않으면 false 을 반환합니다.

예를 들어, 이 함수를 반복적으로 사용하여 다음 단어의 끝으로 이동하면, 문서의 끝에 도달했을 때 결국 실패하게 됩니다.

기본적으로 이동 작업은 한 번 수행됩니다(n = 1).

mode 가 KeepAnchor 인 경우, 커서는 이동하는 텍스트를 선택합니다. 이는 사용자가 Shift 키를 누른 상태에서 커서 키를 사용하여 커서를 이동할 때와 동일한 효과입니다.

setVisualNavigation()도 참조하십시오 .

int QTextCursor::position() const

문서 내에서 커서의 절대 위치를 반환합니다. 커서는 문자 사이에 위치합니다.

참고: 이 경우의 "문자"는 QChar 객체의 문자열, 즉 16비트 유니코드 문자를 의미하며, 위치는 이 문자열 내의 인덱스로 간주됩니다. 단일 그래펄이 대리 쌍, 언어적 합자 또는 분음 부호와 같이 여러 유니코드 문자로 표현될 수 있으므로, 이 위치는 필기 체계 내의 개별 그래펄과 반드시 일치하는 것은 아닙니다.

setPosition(), movePosition(), anchor() 및 positionInBlock()도 참조하십시오 .

int QTextCursor::positionInBlock() const

블록 내에서 커서의 상대적 위치를 반환합니다. 커서는 문자 사이에 위치합니다.

이는 ` position() - block().position()`와 동일합니다.

참고: 이 경우의 "문자 "는 QChar 객체, 즉 16비트 유니코드 문자로 구성된 문자열을 의미하며, 위치는 이 문자열 내의 인덱스로 간주됩니다. 단일 그래펄이 대리 쌍, 언어적 합자 또는 분음 부호와 같이 여러 유니코드 문자로 표현될 수 있으므로, 이 위치는 반드시 해당 문자 체계의 개별 그래펄과 일치하는 것은 아닙니다.

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 `에는 선택 범위의 첫 번째 열 번호가, ` numRows `와 ` numColumns `에는 선택 범위의 행 수와 열 수가 할당됩니다. 선택 범위가 테이블 셀에 걸쳐 있지 않은 경우, 결과는 무해하지만 정의되지 않습니다.

QString QTextCursor::selectedText() const

현재 선택 영역의 텍스트(비어 있을 수도 있음)를 반환합니다. 이 함수는 텍스트만 반환하며, 서식 정보는 포함하지 않습니다. 문서 조각(즉, 서식이 적용된 리치 텍스트)을 얻으려면 대신 ` selection()`를 사용하십시오.

참고: 편집기에서 가져온 선택 영역이 줄 바꿈을 포함하는경우 , 텍스트에는 줄 바꿈 \n 대신 유니코드 U+2029 단락 구분자가 포함됩니다. 이 문자를 줄 바꿈으로 바꾸려면 QString::replace()을 사용하십시오.

QTextDocumentFragment QTextCursor::selection() const

현재 선택 영역(비어 있을 수도 있음)과 해당 서식 정보를 모두 반환합니다. 선택된 텍스트(즉, 일반 텍스트)만 원하는 경우에는 대신 selectedText()을 사용하십시오.

참고: QTextDocumentFragment::toPlainText()과 달리 , selectedText()은 QChar::ParagraphSeparator 와 같은 특수 유니코드 문자를 포함할 수 있습니다.

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 가 true인 경우, 커서 위치에 텍스트가 삽입될 때 커서는 현재 위치를 유지합니다. b 가 false인 경우, 커서는 삽입된 텍스트와 함께 이동합니다.

기본값은 false입니다.

커서의 현재 위치 앞쪽에 텍스트가 삽입될 때는 커서가 항상 이동하며, 현재 위치 뒤쪽에 텍스트가 삽입될 때는 항상 현재 위치를 유지한다는 점에 유의하십시오.

keepPositionOnInsert()도 참조하십시오 .

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

m 로 지정된 ` MoveMode `를 사용하여, ` pos `로 지정된 문서 내의 절대 위치로 커서를 이동합니다. 커서는 문자 사이에 위치하게 됩니다.

참고: 이 경우의 "문자"는 QChar 객체의 문자열, 즉 16비트 유니코드 문자를 의미하며, pos 는 이 문자열 내의 인덱스로 간주됩니다. 이는 필기 체계의 개별 그래펄과 반드시 일치하는 것은 아닙니다. 단일 그래펄이 대리 쌍, 언어적 합자 또는 분음 부호와 같이 여러 유니코드 문자로 표현될 수 있기 때문입니다. 문서를 탐색하는 데 있어 보다 일반적인 접근 방식을 원한다면, 텍스트 내의 실제 그래프음 경계를 준수하는 ` 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`를 반환합니다.

© 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.