이 페이지에서

QTextBlock Class

QTextBlock 클래스는 QTextView QTextDocument 내의 텍스트 조각을 담는 컨테이너를 제공합니다. 더 보기...

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

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 유형

공개 함수

QTextBlock(const QTextBlock &other)
QTextBlock::iterator begin() const
QTextBlockFormat blockFormat() const
int blockFormatIndex() const
int blockNumber() const
QTextCharFormat charFormat() const
int charFormatIndex() const
void clearLayout()
bool contains(int position) const
const QTextDocument *document() const
QTextBlock::iterator end() const
int firstLineNumber() const
bool isValid() const
bool isVisible() const
QTextLayout *layout() const
int length() const
int lineCount() const
QTextBlock next() const
int position() const
QTextBlock previous() const
int revision() const
void setLineCount(int count)
void setRevision(int rev)
void setUserData(QTextBlockUserData *data)
void setUserState(int state)
void setVisible(bool visible)
QString text() const
Qt::LayoutDirection textDirection() const
QList<QTextLayout::FormatRange> textFormats() const
QTextList *textList() const
QTextBlockUserData *userData() const
int userState() const
bool operator!=(const QTextBlock &other) const
bool operator<(const QTextBlock &other) const
QTextBlock &operator=(const QTextBlock &other)
bool operator==(const QTextBlock &other) const

상세 설명

텍스트 블록은 QTextDocument( QTextDocument) 내의 텍스트 블록이나 단락을 캡슐화합니다. QTextBlock은 QTextDocuments의 블록/단락 구조에 대한 읽기 전용 액세스를 제공합니다. 이는 주로 Q QTextDocument 의 시각적 표현을 위해 자체 레이아웃을 구현하고자 하거나, 문서를 반복 처리하여 사용자 정의 형식으로 내용을 출력하고자 할 때 유용합니다.

텍스트 블록은 상위 문서에 의해 생성됩니다. 새로운 텍스트 블록을 생성해야 하거나, 문서의 내용을 검토하는 동안 내용을 수정해야 하는 경우에는 QTextCursor 에서 제공하는 커서 기반 인터페이스를 대신 사용하십시오.

각 텍스트 블록은 document() 내의 특정 position() 위치에 있습니다. 블록의 내용은 text() 함수를 사용하여 얻을 수 있습니다. length() 함수는 문서 내에서 블록의 크기(서식 문자 포함)를 결정합니다. 블록의 시각적 속성은 텍스트 layout(), charFormat(), blockFormat()에 의해 결정됩니다.

next() 및 previous() 함수는 반복 처리 과정에서 문서가 다른 방식으로 수정되지 않는다는 조건 하에, 문서 내의 연속된 유효한 블록을 반복 처리할 수 있게 해줍니다. 블록은 순서대로 반환되지만, 인접한 블록이 문서 구조상 서로 다른 위치에서 비롯될 수 있다는 점에 유의하십시오. 블록의 유효성은 isValid()를 호출하여 확인할 수 있습니다.

QTextBlock은 블록 작업을 용이하게 하기 위해 비교 연산자를 제공합니다. ` operator==()`는 두 블록의 동일성을 비교하고, ` operator!=()`는 두 블록의 불일치를 비교하며, ` operator<()`는 동일한 문서 내에서 한 블록이 다른 블록보다 앞에 오는지 여부를 판단합니다.

텍스트 프레임의 계층 구조 내에 여러 텍스트 블록이 배치된 모습과, 텍스트 블록 간의 반복 순서를 보여주는 다이어그램.

QTextBlockFormat, QTextCharFormat 및 QTextFragment도 참조하십시오 .

멤버 유형 문서

QTextBlock::Iterator

QTextBlock::iterator 의 Qt 스타일 동의어.

멤버 함수 문서

QTextBlock::QTextBlock(const QTextBlock &other)

other 텍스트 블록의 속성을 이 텍스트 블록으로 복사합니다.

QTextBlock::iterator QTextBlock::begin() const

텍스트 블록의 시작 부분을 가리키는 텍스트 블록 반복자를 반환합니다.

end()도 참조하십시오 .

QTextBlockFormat QTextBlock::blockFormat() const

블록별 속성을 설명하는 QTextBlockFormat 객체를 반환합니다.

charFormat()도 참조하십시오 .

int QTextBlock::blockFormatIndex() const

텍스트 블록의 형식에 대한 문서의 내부 블록 형식 목록에서 해당 인덱스를 반환합니다.

QTextDocument::allFormats()도 참조하십시오 .

int QTextBlock::blockNumber() const

이 블록의 번호를 반환하며, 블록이 유효하지 않은 경우 -1을 반환합니다.

QTextCursor::blockNumber()도 참조하십시오 .

QTextCharFormat QTextBlock::charFormat() const

블록의 문자 형식을 설명하는 ` QTextCharFormat `를 반환합니다. 블록의 문자 형식은 빈 블록에 텍스트를 삽입할 때 사용됩니다.

blockFormat()도 참조하십시오 .

int QTextBlock::charFormatIndex() const

텍스트 블록의 문자 형식에 해당하는, 문서의 내부 문자 형식 목록 내 인덱스를 반환합니다.

QTextDocument::allFormats()도 참조하십시오 .

void QTextBlock::clearLayout()

블록의 내용을 배치하고 표시하는 데 사용되는 레이아웃 객체( QTextLayout )를 지웁니다.

layout()도 참조하십시오 .

bool QTextBlock::contains(int position) const

지정된 ` position `가 텍스트 블록 내에 있는 경우 ` true `을 반환하고, 그렇지 않은 경우 ` false`을 반환합니다.

const QTextDocument *QTextBlock::document() const

이 텍스트 블록이 속한 텍스트 문서를 반환하거나, 해당 텍스트 블록이 어떤 문서에도 속하지 않는 경우 ` nullptr `를 반환합니다.

QTextBlock::iterator QTextBlock::end() const

텍스트 블록의 끝을 가리키는 텍스트 블록 반복자를 반환합니다.

begin(), next(), previous()도 참조하십시오 .

int QTextBlock::firstLineNumber() const

이 블록의 첫 번째 줄 번호를 반환하며, 블록이 유효하지 않은 경우 -1을 반환합니다. 레이아웃에서 이를 지원하는 경우가 아니라면, 줄 번호는 블록 번호와 동일합니다.

QTextBlock::blockNumber()도 참조하십시오 .

bool QTextBlock::isValid() const

이 텍스트 블록이 유효하면 ` true `를 반환하고, 그렇지 않으면 ` false`를 반환합니다.

bool QTextBlock::isVisible() const

블록이 표시되어 있으면 true 를 반환하고, 그렇지 않으면 false 를 반환합니다.

setVisible()도 참조하십시오 .

QTextLayout *QTextBlock::layout() const

블록의 내용을 레이아웃하고 표시하는 데 사용되는 ` QTextLayout ` 객체를 반환합니다.

반환된 ` QTextLayout ` 객체는 ` QAbstractTextDocumentLayout ` 하위 클래스의 `documentChanged` 구현에서만 수정할 수 있다는 점에 유의하십시오. 외부에서 적용된 모든 변경 사항은 정의되지 않은 동작을 유발합니다.

clearLayout()도 참조하십시오 .

int QTextBlock::length() const

블록의 길이를 문자 단위로 반환합니다.

참고: 반환되는길이는 줄바꿈과 같은 모든 서식 문자를 포함합니다.

참조: text(), charFormat(), blockFormat().

int QTextBlock::lineCount() const

줄 수를 반환합니다. 모든 문서 레이아웃이 이 기능을 지원하는 것은 아닙니다.

setLineCount()도 참조하십시오 .

QTextBlock QTextBlock::next() const

이 블록 다음의 문서 내 텍스트 블록을 반환하며, 이 블록이 마지막 블록인 경우에는 빈 텍스트 블록을 반환합니다.

다음 블록은 이 블록과 다른 프레임이나 테이블에 있을 수 있다는 점에 유의하십시오.

previous(), begin(), end()도 참조하십시오 .

int QTextBlock::position() const

문서 내에서 해당 블록의 첫 번째 문자가 위치한 인덱스를 반환합니다.

QTextBlock QTextBlock::previous() const

이 블록 바로 앞의 문서 내 텍스트 블록을 반환하며, 이 블록이 첫 번째 블록인 경우에는 빈 텍스트 블록을 반환합니다.

이전 블록은 이 블록과 다른 프레임이나 테이블에 위치할 수 있습니다.

next(), begin(), end()도 참조하십시오 .

int QTextBlock::revision() const

블록의 리비전을 반환합니다.

setRevision() 및 QTextDocument::revision()도 참조하십시오 .

void QTextBlock::setLineCount(int count)

줄 수를 count 로 설정합니다.

lineCount()도 참조하십시오 .

void QTextBlock::setRevision(int rev)

블록의 개정 버전을 rev 로 설정합니다.

revision() 및 QTextDocument::revision()도 참조하십시오 .

void QTextBlock::setUserData(QTextBlockUserData *data)

지정된 ` data ` 객체를 텍스트 블록에 연결합니다.

QTextBlockUserData 사용자 정의 설정을 저장하는 데 사용할 수 있습니다. 소유권은 기본 텍스트 문서로 전달되므로, 즉 해당 텍스트 블록이 삭제되면 제공된 ` QTextBlockUserData ` 객체도 함께 삭제됩니다. 사용자 데이터 객체는 실행 취소 기록에 저장되지 않으므로, 텍스트 블록 삭제를 실행 취소한 후에는 사용할 수 없게 됩니다.

예를 들어, IDE에서 프로그래밍 편집기를 작성할 때, 통합 디버거를 위해 사용자가 코드 내에서 시각적으로 중단점을 설정할 수 있도록 하고 싶을 수 있습니다. 프로그래밍 편집기에서 텍스트 한 줄은 일반적으로 하나의 ` QTextBlock`에 해당합니다. ` QTextBlockUserData ` 인터페이스를 사용하면 개발자가 각 ` QTextBlock`에 대한 데이터를 저장할 수 있습니다. 예를 들어, 사용자가 소스 코드의 어느 줄에 중단점을 설정했는지 등의 정보를 저장할 수 있습니다. 물론 이 정보를 외부에 저장할 수도 있지만, QTextDocument 내에 저장하면 사용자가 관련 줄을 삭제할 때 해당 정보도 자동으로 삭제됩니다. 이는 QTextFormat 의 사용자 정의 속성을 사용하지 않고도 QTextDocument 에 사용자 정의 정보를 저장하는 방법일 뿐이며, 사용자 정의 속성을 사용할 경우 실행 취소/다시 실행 스택에 영향을 미칠 수 있습니다.

userData()도 참조하십시오 .

void QTextBlock::setUserState(int state)

지정된 ` state ` 정수 값을 텍스트 블록에 저장합니다. 이는 예를 들어 구문 강조 표시기에서 텍스트 구문 분석 상태를 저장하는 데 유용할 수 있습니다.

userState()도 참조하십시오 .

void QTextBlock::setVisible(bool visible)

블록의 표시 상태를 ‘ visible ’로 설정합니다.

isVisible()도 참조하십시오 .

QString QTextBlock::text() const

블록의 내용을 일반 텍스트로 반환합니다.

length(), charFormat() 및 blockFormat()도 참조하십시오 .

Qt::LayoutDirection QTextBlock::textDirection() const

해결된 텍스트 방향을 반환합니다.

블록에 명시적인 방향이 설정되어 있지 않은 경우, 블록의 내용을 바탕으로 방향을 결정합니다. Qt::LeftToRight 또는 Qt::RightToLeft 중 하나를 반환합니다.

QTextFormat::layoutDirection(), QString::isRightToLeft(), Qt::LayoutDirection도 참조하십시오 .

QList<QTextLayout::FormatRange> QTextBlock::textFormats() const

블록의 텍스트 서식 옵션을 ` QTextCharFormat`의 연속된 범위 목록으로 반환합니다. 범위 경계 내에 텍스트를 삽입할 때 해당 범위의 문자 서식이 사용됩니다.

charFormat() 및 blockFormat()도 참조하십시오 .

QTextList *QTextBlock::textList() const

블록이 목록 항목을 나타내는 경우, 해당 항목이 속한 목록을 반환하고, 그렇지 않은 경우 ` nullptr`을 반환합니다.

QTextBlockUserData *QTextBlock::userData() const

setUserData() 또는 nullptr 를 통해 설정된 경우, QTextBlockUserData 객체에 대한 포인터를 반환합니다.

setUserData()도 참조하십시오 .

int QTextBlock::userState() const

setUserState()를 통해 이전에 설정된 정수 값을 반환하거나 -1을 반환합니다.

setUserState()도 참조하십시오 .

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

이 텍스트 블록이 ‘ other ’ 텍스트 블록과 다를 경우, ‘ true ’을 반환합니다.

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

문서 내에서 이 텍스트 블록이 ‘ other ’ 텍스트 블록보다 앞에 위치할 경우, true 를 반환합니다.

QTextBlock &QTextBlock::operator=(const QTextBlock &other)

other 텍스트 블록을 이 텍스트 블록에 할당합니다.

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

이 텍스트 블록이 ‘ other ’ 텍스트 블록과 동일할 경우 ‘ true ’를 반환합니다.

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