이 페이지에서

TextEdit QML Type

편집 가능한 서식 지정된 텍스트를 여러 줄에 걸쳐 표시합니다. 더 보기...

Import Statement: import QtQuick
Inherits:

Item

Inherited By:

TextArea

속성

신호

방법

상세 설명

TextEdit 항목은 편집 가능하고 서식이 지정된 텍스트 블록을 표시합니다.

일반 텍스트와 서식이 적용된 텍스트를 모두 표시할 수 있습니다. 예를 들어:

TextEdit {
    width: 240
    text: "<b>Hello</b> <i>World!</i>"
    font.family: "Helvetica"
    font.pointSize: 20
    color: "blue"
    focus: true
}

focus 을 true 로 설정하면 TextEdit 항목이 키보드 포커스를 받을 수 있게 됩니다.

TextEdit은 스크롤, 커서 추적 또는 룩 앤 필(look and feel)에 특화된 기타 동작을 구현하지 않는다는 점에 유의하십시오. 예를 들어, 커서를 따라가는 플릭 스크롤을 추가하려면:

Flickable {
     id: flick

     width: 300; height: 200;
     contentWidth: edit.contentWidth
     contentHeight: edit.contentHeight
     clip: true

     function ensureVisible(r)
     {
         if (contentX >= r.x)
             contentX = r.x;
         else if (contentX+width <= r.x+r.width)
             contentX = r.x+r.width-width;
         if (contentY >= r.y)
             contentY = r.y;
         else if (contentY+height <= r.y+r.height)
             contentY = r.y+r.height-height;
     }

     TextEdit {
         id: edit
         width: flick.width
         focus: true
         wrapMode: TextEdit.Wrap
         onCursorRectangleChanged: flick.ensureVisible(cursorRectangle)
     }
 }

특정 룩 앤 필(look and feel)은 부드러운 스크롤링(예: SmoothedAnimation 사용)을 사용하거나, 눈에 보이는 스크롤바를 갖거나, 위치를 표시하기 위해 서서히 나타나는 스크롤바 등을 가질 수 있습니다.

클립보드 지원은 cut(), copy(), paste() 함수를 통해 제공됩니다. selectByMouse 가 false 로 설정되어 있지 않은 한, 마우스를 사용하여 일반적인 방식으로 텍스트를 선택할 수 있으며, selectByKeyboard 가 false 로 설정되어 있지 않은 한, Shift+arrow 키 조합을 사용하여 키보드로 텍스트를 선택할 수 있습니다. 프로그래밍 방식으로 텍스트를 선택하려면 selectionStart 및 selectionEnd 속성을 설정하거나, selectAll() 또는 selectWord()를 사용할 수 있습니다.

positionAt() 및 positionToRectangle()을 사용하여 커서 위치(문서 시작 부분부터의 문자 수)와 픽셀 좌표 간 변환을 수행할 수 있습니다.

Text, TextInput, TextArea 및 Qt Quick Controls - 텍스트 편집기도참조하십시오 .

속성 문서

activeFocusOnPress : bool

TextEdit 가 마우스 클릭 시 활성 포커스를 받아야 하는지 여부입니다. 기본적으로 이 값은 true로 설정되어 있습니다.

baseUrl : url

이 속성은 텍스트 내의 상대 URL을 해결하는 데 사용되는 기본 URL을 지정합니다.

기본값은 ` TextEdit ` 항목을 인스턴스화하는 QML 파일의 URL입니다.

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

이 속성들은 콘텐츠 주변의 패딩을 지정합니다. 이 공간은 ‘ contentWidth ’ 및 ‘ contentHeight ’에 더해 별도로 할당됩니다.

canPaste : bool [read-only]

TextEdit 에 쓰기 권한이 있고, 클립보드의 내용이 TextEdit 에 붙여넣기에 적합한 경우 true를 반환합니다.

canRedo : bool [read-only]

TextEdit 에 쓰기 권한이 있고, 되돌릴 수 있는 undone 작업이 있는 경우 true를 반환합니다.

canUndo : bool [read-only]

TextEdit 가 쓰기 가능하고, 되돌릴 수 있는 이전 작업이 있는 경우 true를 반환합니다.

color : color

텍스트 색상.

// green text using hexadecimal notation
TextEdit { color: "#00FF00" }
// steelblue text using SVG color name
TextEdit { color: "steelblue" }

contentHeight : real [read-only]

텍스트의 높이를 반환합니다. 여기에는 텍스트가 설정된 높이에 들어가지 않을 경우, 해당 높이를 초과하는 부분의 높이도 포함됩니다.

contentWidth : real [read-only]

wrapMode 가 설정된 경우, 줄 바꿈이 제대로 이루어지지 않아 텍스트가 넘쳐나는 부분을 포함하여 텍스트의 너비를 반환합니다.

cursorDelegate : Component

TextEdit 의 커서 델리게이트입니다.

TextEdit 에 cursorDelegate를 설정하면, 표준 커서 대신 이 델리게이트가 커서 그리기에 사용됩니다. 커서가 필요할 때 텍스트 편집기가 델리게이트 인스턴스를 생성하고 관리하며, 델리게이트 인스턴스의 x 및 y 속성은 현재 문자의 왼쪽 상단에서 1픽셀 앞 위치가 되도록 설정됩니다.

단, 델리게이트 컴포넌트의 루트 항목은 반드시 ` QQuickItem ` 또는 ` QQuickItem `에서 파생된 항목이어야 합니다.

cursorPosition : int

TextEdit 내 커서의 위치. 커서는 문자 사이에 위치합니다.

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

cursorRectangle : rectangle [read-only]

텍스트 편집기 내에서 표준 텍스트 커서가 표시되는 사각형입니다. 읽기 전용입니다.

사용자 정의 cursorDelegate 의 위치와 높이는 cursorRectangle이 변경될 때 이를 자동으로 따라가도록 업데이트됩니다. 델리게이트의 너비는 커서 사각형의 변경에 영향을 받지 않습니다.

cursorSelection : QtQuick::TextSelection [read-only, technology preview]

이 속성은 기술 미리보기 단계에 있으며 변경될 수 있습니다.

이 속성은 텍스트 커서와 함께 현재 선택된 텍스트(있는 경우)의 속성을 제공하는 객체입니다.

이 속성은 Qt 6.7에서 도입되었습니다.

selectedText, selectionStart 및 selectionEnd도 참조하십시오 .

cursorVisible : bool

true인 경우 텍스트 편집창에 커서가 표시됩니다.

이 속성은 텍스트 편집창이 활성 포커스를 받을 때 설정 및 해제되지만, 직접 설정할 수도 있습니다(예를 들어, KeyProxy가 키 입력을 이 텍스트 편집창으로 전달하는 경우에 유용합니다).

effectiveHorizontalAlignment : enumeration [read-only]

horizontalAlignment : enumeration

verticalAlignment : enumeration

TextEdit 항목의 너비와 높이 범위 내에서 텍스트의 가로 및 세로 정렬을 설정합니다. 기본적으로 텍스트 정렬은 텍스트의 자연스러운 정렬 방식을 따릅니다. 예를 들어, 왼쪽에서 오른쪽으로 읽는 텍스트는 왼쪽 정렬됩니다.

horizontalAlignment 에 사용할 수 있는 유효한 값은 다음과 같습니다:

상수설명
TextEdit.AlignLeft오른쪽 가장자리가 불규칙한 왼쪽 정렬(기본값)
TextEdit.AlignRight각 줄을 오른쪽에 정렬하며 왼쪽 가장자리는 불규칙하게 처리
TextEdit.AlignHCenter각 줄을 중앙에 정렬
TextEdit.AlignJustify각 줄을 좌우 양쪽 끝으로 정렬하며, 필요에 따라 단어를 분할합니다

verticalAlignment 에 사용할 수 있는 유효한 값은 다음과 같습니다:

상수설명
TextEdit.AlignTop항목의 맨 위부터 시작합니다(기본값).
TextEdit.AlignBottom마지막 줄은 하단에 맞추고 나머지 줄은 그 위에 배치
TextEdit.AlignVCenter수직 방향으로 중앙 정렬

LayoutMirroring::enabled 속성을 사용하여 애플리케이션 레이아웃을 대칭으로 반전할 경우, 텍스트의 수평 정렬도 함께 반전됩니다. 그러나 horizontalAlignment 속성은 변경되지 않습니다. TextEdit 의 실제 수평 정렬을 확인하려면 읽기 전용 속성인 effectiveHorizontalAlignment 을 사용하십시오.

font.bold : bool

글꼴의 굵기를 굵게로 설정할지 여부를 지정합니다.

font.capitalization : enumeration

텍스트의 대소문자 사용 방식을 설정합니다.

상수설명
Font.MixedCase대소문자 변경이 적용되지 않습니다
Font.AllUppercase텍스트가 모두 대문자로 렌더링되도록 변경합니다
Font.AllLowercase텍스트를 모두 소문자로 렌더링되도록 변경합니다.
Font.SmallCaps텍스트를 스몰캡스 형태로 렌더링하도록 변경합니다
Font.Capitalize각 단어의 첫 글자만 대문자로 표시되도록 텍스트를 변경합니다
TextEdit { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

선택한 글꼴에 특정 문자가 포함되어 있지 않은 경우, Qt는 해당 문자가 포함된 모양이 비슷한 대체 글꼴을 자동으로 선택합니다. 기본적으로 이 작업은 문자 단위로 수행됩니다.

즉, 드문 경우이긴 하지만, 동일한 문자 체계에 속하더라도 하나의 문자열을 표현하는 데 여러 가지 다른 글꼴이 사용될 수 있습니다. ` contextFontMerging `를 `true`로 설정하면, 대신 입력 문자열의 가장 큰 부분 집합과 일치하는 대체 글꼴을 찾으려고 시도합니다. 글리프가 누락된 문자열의 경우 처리 비용이 더 많이 들 수 있지만, 더 일관된 결과를 얻을 수 있습니다. 기본적으로 ` contextFontMerging `의 값은 ` false`입니다.

이 속성은 Qt 6.8에서 도입되었습니다.

QFont::StyleStrategy도 참조하십시오 .

font.family : string

글꼴의 패밀리 이름을 설정합니다.

패밀리 이름은 대소문자를 구분하지 않으며, 선택적으로 폰트 제작사 이름을 포함할 수 있습니다(예: "Helvetica [Cronyx]"). 해당 서체 패밀리가 두 곳 이상의 폰트 제작사에서 제공되며 제작사가 명시되지 않은 경우, 임의의 제작사가 선택됩니다. 해당 서체 패밀리를 사용할 수 없는 경우, 서체 매칭 알고리즘을 사용하여 서체 패밀리가 설정됩니다.

font.features : object [since 6.6]

텍스트 내용을 기반으로 텍스트 모양을 조정할 때 특정 OpenType 기능에 정수 값을 적용합니다. 이를 통해 글꼴 모양 조정 과정에 대한 고급 제어 기능을 제공하며, API에서 지원하지 않는 글꼴 기능을 구현하는 데 사용할 수 있습니다.

글꼴 기능은 4자 태그와 정수 값 간의 매핑으로 표현됩니다. 대부분의 경우 태그와 함께 전달되는 이 정수 값은 부울 값을 나타냅니다. 0은 기능이 비활성화되었음을, 0이 아닌 값은 활성화되었음을 의미합니다. 그러나 특정 글꼴 기능의 경우 다른 방식으로 해석될 수도 있습니다. 예를 들어, ‘ salt ’ 기능에 적용될 때, 이 값은 사용할 스타일적 대안을 지정하는 인덱스 역할을 합니다.

예를 들어, ‘ frac ’ 글꼴 기능은 슬래시(/)로 구분된 대각선 분수(예: 1/2)를 다른 형태로 변환합니다. 일반적으로 이는 전체 분수를 단일 문자 너비로 압축하는 것을 의미합니다(예: ½).

글꼴이 ‘ frac ’ 기능을 지원하는 경우, 다음 코드와 같이 셰이퍼에서 이 기능을 활성화할 수 있습니다:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

동일한 매핑에서 여러 기능에 값을 할당할 수 있습니다. 예를 들어, 글꼴의 커닝도 비활성화하고 싶다면 다음과 같이 명시적으로 비활성화할 수 있습니다:

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

또한 폰트 속성을 객체에 모아둘 수도 있습니다:

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

참고: 기본적으로 Qt는 다른 글꼴 속성에 따라 특정 글꼴 기능을 활성화하거나 비활성화합니다. 특히, ‘ kern ’ 기능은 ‘ font::kerning ’ 속성에 따라 활성화/비활성화됩니다. 또한, ‘ ’가 설정된 경우 모든 리가처 기능(liga, clig,

dlig, hlig)은 font.letterSpacing 가 설정된 경우 비활성화되지만, 이는 리가처 사용이 순전히 미적 목적인 문자 체계에만 해당됩니다. 리가처가 필수적인 문자 체계의 경우, 해당 기능은 기본 상태를 유지합니다. font.features 를 사용하여 설정된 값은 기본 동작을 재정의합니다. 예를 들어, "kern" 가 1로 설정된 경우, font::kerning 속성이 false로 설정되어 있더라도 커닝은 항상 활성화됩니다. 마찬가지로,

0 로 설정된 경우, 커닝은 항상 비활성화됩니다.

이 속성은 Qt 6.6에서 도입되었습니다.

QFont::setFeature()도 참조하십시오 .

font.hintingPreference : enumeration

텍스트에 선호하는 힌팅을 설정합니다.

이는 기본 텍스트 렌더링 시스템에 특정 수준의 힌팅을 사용하도록 지시하는 것으로, 플랫폼에 따라 지원 여부가 다릅니다. 자세한 내용은 QFont::HintingPreference 문서의 표를 참조하십시오.

참고: 이 속성은 렌더링 유형 Text.NativeRendering 와 함께 사용될 때만 효과가 있습니다.

상수설명
Font.PreferDefaultHinting대상 플랫폼의 기본 힌팅 수준을 사용합니다.
Font.PreferNoHinting가능한 경우, 글리프의 윤곽선에 힌팅을 적용하지 않고 텍스트를 렌더링합니다. 텍스트 레이아웃은 예를 들어 인쇄 시 사용되는 것과 동일한 메트릭을 사용하여 타이포그래피적으로 정확합니다.
Font.PreferVerticalHinting가능한 경우, 수평 힌팅 없이 텍스트를 렌더링하되, 수직 방향에서는 글리프를 픽셀 그리드에 정렬합니다. 글리프를 정확하게 렌더링하기에는 밀도가 너무 낮은 디스플레이에서는 텍스트가 더 선명하게 나타납니다. 하지만 글리프의 수평 메트릭에는 힌팅이 적용되지 않으므로, 줄 바꿈과 같은 세부 사항에 영향을 주지 않고도 텍스트 레이아웃을 더 높은 밀도의 장치(예: 프린터)에 맞게 확장할 수 있습니다.
Font.PreferFullHinting가능하다면, 텍스트를 수평 및 수직 방향 모두에 힌팅을 적용하여 렌더링하십시오. 텍스트는 대상 기기에서 가독성을 최적화하도록 변경되지만, 메트릭은 텍스트의 대상 크기에 따라 달라지기 때문에 글리프의 위치, 줄 바꿈 및 기타 타이포그래피적 세부 사항은 크기가 조정되지 않습니다. 즉, 픽셀 밀도가 다른 기기에서는 텍스트 레이아웃이 다르게 보일 수 있습니다.
Text { text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

font.italic : bool

글꼴에 이탤릭 스타일이 있는지 여부를 설정합니다.

font.kerning : bool

텍스트 모양을 조정할 때 커닝 OpenType 기능을 활성화하거나 비활성화합니다. 이 기능을 비활성화하면 텍스트를 생성하거나 변경할 때 성능이 향상될 수 있지만, 일부 시각적 효과가 저하될 수 있습니다. 기본값은 ` true`입니다.

Text { text: "OATS FLAVOUR WAY"; font.kerning: false }

font.letterSpacing : real

글꼴의 글자 간격을 설정합니다.

글자 간격은 글꼴 내 개별 글자 사이의 기본 간격을 변경합니다. 양수 값을 지정하면 해당 픽셀 수만큼 글자 간격이 넓어지고, 음수 값을 지정하면 간격이 좁아집니다.

font.pixelSize : int

글꼴 크기를 픽셀 단위로 설정합니다.

이 함수를 사용하면 글꼴이 장치에 종속됩니다. 장치와 무관하게 글꼴 크기를 설정하려면 ` TextEdit::font.pointSize `를 사용하십시오.

font.pointSize : real

글꼴 크기를 포인트 단위로 설정합니다. 포인트 크기는 0보다 커야 합니다.

font.preferShaping : bool

때로는 글꼴이 문자를 올바르게 표시하기 위해 특정 문자 집합에 복잡한 규칙을 적용하기도 합니다. 브라흐믹 문자 체계와 같은 일부 문자 체계에서는 텍스트를 가독성 있게 표시하기 위해 이러한 처리가 필수적이지만, 예를 들어 라틴 문자 체계에서는 단순히 미적 효과에 불과합니다. preferShaping 속성을 false로 설정하면 필요하지 않은 경우 이러한 기능을 모두 비활성화할 수 있으며, 대부분의 경우 성능이 향상됩니다.

기본값은 ` true`입니다.

Text { text: "Some text"; font.preferShaping: false }

font.preferTypoLineMetrics : bool [since 6.8]

글꼴의 수직 간격( ascent), 수평 간격( descent ), 수평 분할( leading )을 제공하는 서로 상충되는 수직 선 메트릭 세트들입니다. 이들은 흔히 ‘윈 (Windows) 메트릭’과 ‘타이포 (typographical) 메트릭’으로 불립니다. 사양에서는 줄 간격에 typo 메트릭을 사용할 것을 권장하지만, 많은 애플리케이션은 글꼴의 fsSelection 필드에 USE_TYPO_METRICS 플래그가 설정되어 있지 않은 한 win 메트릭을 선호합니다. 하위 호환성상의 이유로 Qt 애플리케이션에서도 마찬가지입니다. 이는 ‘ USE_TYPO_METRICS ’ 플래그를 설정하여 ‘ typo ’ 메트릭이 유효함을 나타내는 글꼴이나, ‘ win ’ 메트릭과 ‘ typo ’ 메트릭이 일치하는 글꼴의 경우에는 문제가 되지 않습니다. 그러나 특정 글꼴의 경우 ‘ win ’ 메트릭이 바람직한 줄 간격보다 클 수 있으며, ‘ USE_TYPO_METRICS ’ 플래그가 실수로 설정되지 않은 경우가 있을 수 있습니다. 이러한 글꼴의 경우 ‘ font.preferTypoLineMetrics ’를 설정하면 더 나은 결과를 얻을 수 있습니다.

기본적으로 ` preferTypoLineMetrics `의 값은 ` false`입니다.

이 속성은 Qt 6.8에서 도입되었습니다.

QFont::StyleStrategy도 참조하십시오 .

font.strikeout : bool

글꼴에 취소선 스타일이 적용될지 여부를 설정합니다.

font.styleName : string

글꼴의 스타일 이름을 설정합니다.

스타일 이름은 대소문자를 구분하지 않습니다. 이 값이 설정되면, 폰트는 font.weight, font.bold, font.italic 과 같은 폰트 속성 대신 스타일 이름에 따라 매칭됩니다.

font.underline : bool

텍스트에 밑줄을 그을지 여부를 설정합니다.

font.variableAxes : object [since 6.7]

가변 글꼴의 가변 축에 부동 소수점 값을 적용합니다.

가변 글꼴은 동일한 글꼴 파일에 여러 가지 변형(두께, 너비 또는 스타일이 다른)을 저장할 수 있는 방법을 제공합니다. 이러한 변형들은 "가변 축"이라고 하는 미리 정의된 매개변수 집합에 대한 부동 소수점 값으로 지정됩니다. 일반적으로 폰트 디자이너가 특정 인스턴스에 이름을 지정하며, Qt에서는 기존 서브패밀리와 마찬가지로 setStyleName()을 사용하여 이를 선택할 수 있습니다.

경우에 따라서는 서로 다른 축에 임의의 값을 지정하는 것이 유용할 수도 있습니다. 예를 들어, 폰트에 Regular와 Bold 서브패밀리가 있는 경우, 이 둘 사이의 중간 굵기를 원할 수 있습니다. 이 경우 폰트의 “wght” 축에 사용자 정의 값을 지정하여 수동으로 요청할 수 있습니다.

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

글꼴에서 “wght” 축을 지원하고, 지정된 값이 정의된 범위 내에 있다면, 550.0의 굵기에 해당하는 글꼴이 제공됩니다.

많은 글꼴이 제공하는 몇 가지 표준 축으로는 “wght”(두께), “wdth”(너비), “ital”(이탤릭), “opsz”(광학 크기) 등이 있습니다. 이들 각각은 글꼴 자체에 정의된 개별 범위를 가지고 있습니다. 예를 들어, “wght”는 100에서 900까지(QFont::Thin 에서 QFont::Black 까지)의 범위를 가질 수 있는 반면, “ital”은 0에서 1까지(이탤릭이 아닌 상태부터 완전한 이탤릭까지)의 범위를 가질 수 있습니다.

글꼴은 사용자 정의 축을 정의할 수도 있습니다. 유일한 제한 사항은 이름이 QFont::Tag (4개의 latin-1 문자 시퀀스) 요건을 충족해야 한다는 점입니다.

기본적으로 가변 축은 설정되어 있지 않습니다.

참고: Windows에서 선택적 GDI 글꼴 백엔드를 사용하는 경우 가변 축이 지원되지 않습니다.

이 속성은 Qt 6.7에서 도입되었습니다.

QFont::setVariableAxis()도 참조하십시오 .

font.weight : int

요청된 글꼴의 굵기입니다. 요청된 굵기는 1에서 1000 사이의 정수이거나, 다음의 미리 정의된 값 중 하나여야 합니다:

상수설명
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400 (기본값)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
Text { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

글꼴의 단어 간격을 설정합니다.

단어 간격은 개별 단어 사이의 기본 간격을 변경합니다. 양수 값을 지정하면 단어 간격이 해당 픽셀 수만큼 넓어지고, 음수 값을 지정하면 단어 간격이 그만큼 좁아집니다.

이 속성은 사용자가 텍스트에 삽입된 링크 위에 마우스를 올렸을 때 표시되는 링크 문자열을 포함합니다. 링크는 서식 있는 텍스트 또는 HTML 형식이어야 하며, 이 링크 문자열을 통해 해당 링크로 이동할 수 있습니다.

linkHovered 및 linkAt()도 참조하십시오 .

inputMethodComposing : bool [read-only]

이 속성은 TextEdit 에 입력 방식에서 부분 텍스트가 입력되었는지 여부를 나타냅니다.

입력 방법이 텍스트를 작성하는 동안, 입력 방법(input method)은 부분 텍스트를 편집하거나 확정하기 위해 입력 대상( TextEdit )의 마우스 또는 키 이벤트에 의존할 수 있습니다. 이 속성을 사용하면 입력 방법의 정상적인 작동을 방해할 수 있는 이벤트 핸들러를 언제 비활성화해야 할지 판단할 수 있습니다.

inputMethodHints : enumeration

텍스트 편집창에 입력될 것으로 예상되는 내용과 해당 편집창의 작동 방식에 대한 힌트를 입력 방식에 제공합니다.

값은 플래그들의 비트 단위 조합이며, 힌트가 설정되지 않은 경우에는 Qt.ImhNone입니다.

동작을 변경하는 플래그는 다음과 같습니다:

상수설명
Qt.ImhHiddenText일반적으로 비밀번호를 입력할 때 사용되는 것처럼 문자가 숨겨져야 합니다.
Qt.ImhSensitiveData입력된 텍스트는 예측 사용자 사전과 같은 영구 저장소에 활성 입력 방식에 의해 저장되어서는 안 됩니다.
Qt.ImhNoAutoUppercase문장이 끝날 때 입력 방식이 자동으로 대문자로 전환하려고 시도해서는 안 됩니다.
Qt.ImhPreferNumbers숫자를 사용하는 것이 바람직하지만(필수 사항은 아님).
Qt.ImhPreferUppercase대문자를 사용하는 것이 바람직하지만(필수 사항은 아님), 소문자를 사용하는 것도 허용됩니다.
Qt.ImhPreferLowercase소문자를 사용하는 것이 바람직하지만(필수는 아님).
Qt.ImhNoPredictiveText입력 중에는 예측 텍스트(즉, 사전 조회)를 사용하지 마십시오.
Qt.ImhDate텍스트 편집기는 날짜 입력란의 역할을 합니다.
Qt.ImhTime텍스트 편집기는 시간 필드 역할을 합니다.

입력을 제한하는 플래그(배제 플래그)는 다음과 같습니다:

상수설명
Qt.ImhDigitsOnly숫자만 허용됩니다.
Qt.ImhFormattedNumbersOnly숫자 입력만 허용됩니다. 여기에는 소수점과 마이너스 기호도 포함됩니다.
Qt.ImhUppercaseOnly대문자만 입력할 수 있습니다.
Qt.ImhLowercaseOnly소문자만 입력할 수 있습니다.
Qt.ImhDialableCharactersOnly전화 번호 입력에 적합한 문자만 허용됩니다.
Qt.ImhEmailCharactersOnly이메일 주소에 사용할 수 있는 문자만 허용됩니다.
Qt.ImhUrlCharactersOnlyURL에 사용할 수 있는 문자만 허용됩니다.

마스크:

상수설명
Qt.ImhExclusiveInputMask이 마스크는 배타적 플래그 중 하나라도 사용된 경우 0이 아닌 값을 반환합니다.

length : int [read-only]

TextEdit 항목에 포함된 일반 텍스트 문자의 총 개수를 반환합니다.

이 수치는 서식 지정 마크업을 포함하지 않으므로, ` text ` 속성이 반환하는 문자열의 길이와 다를 수 있습니다.

이 속성은 ` TextEdit`의 내부 문자열 데이터를 복사하거나 변환할 필요가 없기 때문에, ` text ` 속성을 통해 길이를 조회하는 것보다 더 빠를 수 있습니다.

lineCount : int [read-only]

TextEdit 항목에 포함된 행의 총 개수를 반환합니다.

mouseSelectionMode : enumeration

마우스를 사용하여 텍스트를 선택하는 방법을 지정합니다.

상수설명
TextEdit.SelectCharacters(기본값) 선택 범위가 개별 문자로 업데이트됩니다.
TextEdit.SelectWords전체 단위를 기준으로 선택 영역이 업데이트됩니다.

이 속성은 ` selectByMouse `가 true인 경우에만 적용됩니다.

overwriteMode : bool

사용자가 입력한 텍스트가 기존 텍스트를 덮어쓸지 여부.

많은 텍스트 편집기와 마찬가지로, 텍스트 편집기 위젯은 사용자가 입력한 새 텍스트로 기존 텍스트를 삽입하거나 덮어쓰도록 구성할 수 있습니다.

이 속성이 ‘ true ’인 경우, 기존 텍스트는 새 텍스트로 한 글자씩 덮어쓰게 되며, 그렇지 않은 경우 텍스트는 커서 위치에 삽입되어 기존 텍스트를 밀어냅니다.

기본적으로 이 속성은 ' false '로 설정되어 있습니다(새 텍스트가 기존 텍스트를 덮어쓰지 않음).

persistentSelection : bool

TextEdit 가 장면 내의 다른 항목으로 활성 포커스가 이동했을 때 선택 상태를 계속 표시할지 여부입니다. 기본적으로 이 값은 false로 설정되어 있습니다.

preeditText : string [read-only]

이 속성에는 입력 방식에서 제공된 부분 텍스트가 포함되어 있습니다.

예측으로 인해 발생하는 부분 텍스트 기능을 비활성화하려면 inputMethodHints 에서 Qt.ImhNoPredictiveText 플래그를 설정하십시오.

inputMethodHints항목도 참조하십시오 .

readOnly : bool

사용자가 ‘ TextEdit ’ 항목과 상호작용할 수 있는지 여부입니다. 이 속성이 true로 설정된 경우, 사용자는 텍스트를 편집할 수 없습니다.

기본적으로 이 속성은 false로 설정되어 있습니다.

renderType : enumeration

이 컴포넌트의 기본 렌더링 유형을 재정의합니다.

지원되는 렌더링 유형은 다음과 같습니다:

상수설명
TextEdit.QtRendering텍스트는 각 글리프에 대해 확장 가능한 거리 필드를 사용하여 렌더링됩니다.
TextEdit.NativeRendering텍스트는 플랫폼별 기법을 사용하여 렌더링됩니다.
TextEdit.CurveRendering텍스트는 그래픽 하드웨어에서 직접 실행되는 커브 래스터라이저를 사용하여 렌더링됩니다. (Qt 6.7.0에서 도입됨.)

대상 플랫폼에서 텍스트가 네이티브처럼 보이기를 원하고 텍스트 변환과 같은 고급 기능이 필요하지 않은 경우 TextEdit.NativeRendering 를 선택하십시오. NativeRendering 렌더링 유형과 함께 이러한 기능을 사용하면 결과가 좋지 않거나 때로는 픽셀화될 수 있습니다.

TextEdit.QtRendering 과 TextEdit.CurveRendering 은 모두 하드웨어 가속 기술입니다. QtRendering 이 두 가지 중 더 빠르지만, 메모리를 더 많이 사용하며 큰 크기에서는 렌더링 아티팩트가 나타납니다. QtRendering 이 만족스러운 시각적 결과를 제공하지 않거나 그래픽 메모리 소비를 줄이는 것이 우선순위인 경우에는 CurveRendering 을 대안으로 고려해야 합니다.

기본 렌더링 유형은 QQuickWindow::textRenderType()에 의해 결정됩니다.

selectByKeyboard : bool

에디터가 편집 가능한 상태일 때는 기본값이 true이고, 읽기 전용 상태일 때는 false입니다.

true인 경우, 편집기가 읽기 전용이어도 사용자는 키보드를 사용하여 텍스트를 선택할 수 있습니다. false인 경우, 편집기가 편집 가능하더라도 사용자는 키보드를 사용하여 텍스트를 선택할 수 없습니다.

readOnly도 참조하십시오 .

selectByMouse : bool

Qt 6.4부터 기본값은 true 입니다.

true 인 경우, 사용자는 평소와 같은 방식으로 마우스를 사용하여 텍스트를 선택할 수 있습니다.

참고: 6.4 이전버전에서는 기본값이 false 이었으나, 이 속성을 활성화한 경우 터치스크린에서 손가락을 드래그하여 텍스트를 선택할 수도 있었습니다. 이는 Flickable 내부에서 TextEdit 가 사용될 때 플릭 동작과 충돌을 일으켰습니다. 그러나 Qt는 버전 5.7부터 QInputMethod 를 통해 모바일 플랫폼 및 Qt Virtual Keyboard 를 사용하는 임베디드 플랫폼에서 텍스트 선택 핸들을 지원해 왔습니다. 대부분의 사용자는 부모 Flickable을 플릭하는 대신 손가락으로 드래그하여 텍스트가 선택된다면 당황할 것입니다. 따라서 selectByMouse는 이제 문자 그대로의 의미를 가집니다. 즉, true 인 경우 마우스로만 드래그하여 텍스트를 선택할 수 있으며, 터치스크린에서는 플랫폼이 선택 핸들을 제공해야 합니다. 이 변경 사항이 애플리케이션에 적합하지 않은 경우, selectByMouse 를 false 로 설정하거나, 이전 API 버전(예: import QtQuick 6.3)을 임포트하여 이전 동작으로 되돌릴 수 있습니다. 임포트 버전을 변경하여 동작을 되돌리는 옵션은 향후 Qt 버전에서 제거될 예정입니다.

selectedText : string [read-only]

이 읽기 전용 속성은 텍스트 편집창에서 현재 선택된 텍스트를 반환합니다.

이는 다음 코드 조각과 동일하지만, 더 빠르고 사용하기 쉽습니다.

//myTextEdit is the id of the TextEdit
myTextEdit.text.toString().substring(myTextEdit.selectionStart,
        myTextEdit.selectionEnd);

selectedTextColor : color

선택 영역에 적용되는, 선택된 텍스트 색상입니다.

selectionColor : color

선택 영역 뒤에 적용되는 텍스트 강조 표시 색상.

selectionEnd : int [read-only]

현재 선택 영역의 마지막 문자 뒤의 커서 위치.

이 속성은 읽기 전용입니다. 선택 범위를 변경하려면 select(start,end), selectAll() 또는 selectWord()를 사용하십시오.

selectionStart, cursorPosition 및 selectedText도 참조하십시오 .

selectionStart : int [read-only]

현재 선택 영역의 첫 번째 문자 바로 앞의 커서 위치.

이 속성은 읽기 전용입니다. 선택 영역을 변경하려면 select(start,end), selectAll() 또는 selectWord()를 사용하십시오.

selectionEnd, cursorPosition 및 selectedText도 참조하십시오 .

tabStopDistance : real

탭 정지점 사이의 기본 거리(장치 단위).

QTextOption::setTabStopDistance()도 참조하십시오 .

text : string

표시할 텍스트입니다. 텍스트 형식이 ‘AutoText’인 경우, 텍스트 편집기가 해당 텍스트를 서식 있는 텍스트로 처리할지 여부를 자동으로 판단합니다. 이 판단은 ` Qt::mightBeRichText()` 함수를 사용하여 이루어집니다. 그러나 마크다운(Markdown) 인식은 자동으로 이루어지지 않습니다.

text 속성은 주로 초기 내용을 설정하거나 비교적 짧은 텍스트 콘텐츠의 수정을 처리하는 데 적합합니다. append(), insert() 및 remove() 메서드는 특히 대용량 리치 텍스트 콘텐츠를 수정할 때 더 세밀한 제어가 가능하며 성능도 현저히 우수합니다.

일부 키보드에서는 예측 기능을 사용한다는 점에 유의하십시오. 이 경우, 입력 방법으로 작성 중인 텍스트는 이 속성의 일부가 아닙니다. 예측과 관련된 텍스트 부분은 밑줄이 그어져 있으며 preeditText 속성에 저장됩니다.

TextDocument::source 를 사용하여 텍스트를 불러온 경우, 이 속성에서 불러온 텍스트를 가져올 수 있습니다. 이 경우, textFormat 를 변경하여 text 속성의 값을 변경하는 서식 변환을 수행할 수 있습니다. 예를 들어, textFormat 가 RichText 또는 AutoText 이고 HTML 파일을 불러온 후, textFormat 를 MarkdownText 로 설정하면, text 속성에는 HTML에서 마크다운으로 변환된 내용이 포함됩니다.

clear(), preeditText 및 textFormat도 참조하십시오 .

textDocument : TextDocument [read-only]

이 TextEdit 의 QQuickTextDocument 를 반환합니다. Qt 6.7부터는 파일을 불러오고 저장하는 기능이 추가되었습니다. 또한 C++에서 기본이 되는 QTextDocument 인스턴스에 접근하는 수단으로 사용할 수 있으며, 예를 들어 QSyntaxHighlighter 를 설치하는 데 활용할 수 있습니다.

QQuickTextDocument도 참조하십시오 .

textFormat : enumeration

text 속성이 표시되어야 하는 방식.

지원되는 텍스트 형식은 다음과 같습니다:

상수설명
TextEdit.PlainText(기본값) 모든 서식 태그는 일반 텍스트로 처리됩니다
TextEdit.AutoTextQt::mightBeRichText() 휴리스틱을 통해 감지되거나 TextDocument::source
TextEdit.RichTextHTML 4의 하위 집합
TextEdit.MarkdownTextCommonMark에 표 및 작업 목록을 위한 GitHub 확장 기능이 추가된 형식(5.14부터)

기본값은 TextEdit.PlainText 입니다. 텍스트 형식이 TextEdit.AutoText 로 설정된 경우, 텍스트 편집기는 해당 텍스트를 서식 있는 텍스트로 처리해야 하는지 자동으로 판단합니다. text 속성이 설정된 경우, 이 판단은 Qt::mightBeRichText()를 사용하여 이루어지며, 이 함수는 텍스트의 첫 번째 줄에 HTML 태그가 있는지 감지할 수 있지만, 마크다운과 일반 텍스트를 구분할 수는 없습니다. TextDocument::source 속성이 설정된 경우, 이 판정은 mime type of the file 를 통해 이루어집니다.

Column {
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.AutoText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.RichText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.PlainText
        text: "<b>Hello</b> <i>World!</i>"
    }
    TextEdit {
        font.pointSize: 24
        textFormat: TextEdit.MarkdownText
        text: "**Hello** *World!*"
    }
}

다양한 텍스트 형식 표시 예시: 자동 텍스트, HTML, 일반 텍스트, 마크다운

TextEdit.MarkdownText 를 사용하면 GitHub 체크박스 확장 기능을 사용하여 생성된 체크박스를 대화형으로 선택할 수 있습니다.

TextDocument::source 속성이 설정된 경우, 로드 후 textFormat 속성을 변경하면 감지된 형식에서 요청된 형식으로 변환되는 효과가 있습니다. 예를 들어, HTML과 마크다운 간에 변환할 수 있습니다. 그러나 이러한 “리치” 형식 중 하나가 로드된 상태에서 textFormat 를 PlainText 로 설정하면, TextEdit 에는 원시 마크업이 표시됩니다. 따라서 적절한 바인딩(예: 체크 가능한 컨트롤에 대한 바인딩)을 통해 사용자가 “원시” 편집과 WYSIWYG 편집을 자유롭게 전환할 수 있습니다.

참고: WYSIWYG 모드에서 마크업이나 마크다운 서식을직접 입력하는 기능은 지원되지 않습니다. 대신 PlainText 로 전환하여 변경한 후, 다시 적절한 textFormat 로 전환할 수 있습니다.

참고: Text.MarkdownText 및 지원되는 HTML 하위 집합을사용할 경우 , 일부 장식 요소는 웹 브라우저에서와 같이 렌더링되지 않습니다.

  • 코드 블록은 default monospace font 를 사용하지만, 주변에 강조 표시 상자가 없습니다.
  • 블록 인용문은 들여쓰기가 적용되지만, 인용문 옆에 수직선이 표시되지 않습니다

textMargin : real

TextEdit 의 텍스트 주변 여백(픽셀 단위).

wrapMode : enumeration

이 속성을 설정하면 텍스트가 ‘ TextEdit ’ 항목의 너비에 맞춰 줄바꿈됩니다. 텍스트는 명시적인 너비가 설정된 경우에만 줄바꿈됩니다.

상수설명
TextEdit.NoWrap(기본값) 줄 바꿈이 수행되지 않습니다. 텍스트에 줄 바꿈 문자가 충분하지 않은 경우, ' implicitWidth '는 설정된 너비를 초과하게 됩니다.
TextEdit.WordWrap단어 경계에서만 줄 바꿈이 수행됩니다. 단어가 너무 길면 ‘ implicitWidth ’가 설정된 너비를 초과하게 됩니다.
TextEdit.WrapAnywhere단어 중간에 위치하더라도 줄의 어느 지점에서나 줄 바꿈이 수행됩니다.
TextEdit.Wrap가능한 경우 단어 경계에서 줄 바꿈이 발생하며, 그렇지 않은 경우 단어 중간이라도 줄의 적절한 지점에서 줄 바꿈이 발생합니다.

기본값은 ` TextEdit.NoWrap`입니다. 너비를 설정할 경우 ` TextEdit.Wrap`을 사용하는 것을 고려하십시오.

Signal 문서

editingFinished()

이 신호는 텍스트 편집창이 포커스를 잃을 때 발생합니다.

참고: 해당핸들러는 ` onEditingFinished`입니다.

linkActivated(string link)

이 신호는 사용자가 텍스트에 삽입된 링크를 클릭할 때 발생합니다. 링크는 서식 있는 텍스트(RTF) 또는 HTML 형식이어야 하며, ‘ link ’ 문자열을 통해 해당 링크에 접근할 수 있습니다.

참고: 해당 핸들러는 onLinkActivated 입니다.

linkHovered(string link)

이 신호는 사용자가 텍스트에 포함된 링크 위에 마우스를 올렸을 때 발생합니다. 링크는 서식 있는 텍스트(RTI) 또는 HTML 형식이어야 하며, ‘ link ’ 문자열을 통해 해당 링크에 접근할 수 있습니다.

참고: 해당 핸들러는 onLinkHovered 입니다.

hoveredLink 및 linkAt()도 참조하십시오 .

[since 6.9] textEdited()

이 신호는 텍스트가 편집될 때마다 발생합니다. ` textChanged()`와 달리, 이 신호는 예를 들어 ` text ` 속성의 값을 변경하거나 ` clear()`를 호출하는 등 프로그래밍 방식으로 텍스트가 변경될 때는 발생하지 않습니다.

참고: 해당 핸들러는 onTextEdited 입니다.

이 신호는 Qt 6.9에서 도입되었습니다.

메서드 문서

void append(string text)

` text `을 사용해 ` TextEdit`의 끝에 새 단락을 추가합니다.

새로운 단락을 삽입하지 않고 추가하려면 대신 ` myTextEdit.insert(myTextEdit.length, text) `를 호출하십시오.

void clear()

텍스트 편집 상자의 내용을 지우고, 입력 방식에서 부분적으로 입력된 텍스트를 초기화합니다.

text 속성을 빈 문자열로 설정하는 대신 이 메서드를 사용하십시오.

QInputMethod::reset()도 참조하십시오 .

void copy()

현재 선택된 텍스트를 시스템 클립보드에 복사합니다.

void cut()

현재 선택된 텍스트를 시스템 클립보드에 복사합니다.

void deselect()

선택된 텍스트를 해제합니다.

string getFormattedText(int start, int end)

start 과 end 위치 사이에 있는 텍스트 부분을 반환합니다.

반환된 텍스트는 textFormat 속성에 따라 서식이 지정됩니다.

string getText(int start, int end)

start 와 end 위치 사이에 있는 텍스트 부분을 반환합니다.

반환된 텍스트에는 서식 정보가 포함되지 않습니다.

void insert(int position, string text)

position 에 있는 TextEdit 에 ‘ text ’를 삽입합니다.

bool isRightToLeft(int start, int end)

start 와 end 사이의 위치에서 발견된 편집기 텍스트의 자연스러운 읽기 방향이 오른쪽에서 왼쪽인 경우, true 를 반환합니다.

string linkAt(real x, real y)

x 지점의 링크 문자열을 반환하며, 콘텐츠 좌표로는 y 에 해당합니다. 해당 지점에 링크가 없는 경우 빈 문자열을 반환합니다.

hoveredLink도 참조하십시오 .

void moveCursorSelection(int position, SelectionMode mode)

커서를 position 로 이동하고, 선택 항목을 선택적 매개변수인 mode 에 따라 업데이트합니다. (커서만 이동하려면 cursorPosition 속성을 설정하십시오.)

이 메서드가 호출되면 추가로 selectionStart 또는 selectionEnd (이전 커서 위치에 있던 것 중 하나)를 지정된 위치로 설정합니다. 이를 통해 선택된 텍스트 범위를 쉽게 확장하거나 축소할 수 있습니다.

선택 모드는 선택 범위가 문자 단위로 업데이트될지, 단어 단위로 업데이트될지를 지정합니다. 지정하지 않으면 선택 모드는 기본적으로 TextEdit.SelectCharacters 로 설정됩니다.

상수설명
TextEdit.SelectCharactersselectionStart 또는 selectionEnd (이전 커서 위치에 있던 것 중 하나)를 지정된 위치로 설정합니다.
TextEdit.SelectWordsselectionStart 과 selectionEnd 를 지정된 위치와 이전 커서 위치 사이에 있는 모든 단어를 포함하도록 설정합니다. 해당 범위에 부분적으로 포함된 단어도 포함됩니다.

예를 들어, 다음과 같은 호출 순서를 살펴보겠습니다.

cursorPosition = 5
moveCursorSelection(9, TextEdit.SelectCharacters)
moveCursorSelection(7, TextEdit.SelectCharacters)

이 호출 순서는 커서를 5번째 위치로 이동시킨 다음, 선택 끝을 5에서 9로 확장하고, 다시 9에서 7로 축소하여 5번째 위치부터 7번째 위치까지의 텍스트(6번째 및 7번째 문자)를 선택 상태로 남깁니다.

TextEdit.SelectWords를 사용한 동일한 호출 순서는 선택 영역의 시작점을 5번째 위치 이전 또는 해당 위치의 단어 경계까지 확장하고, 선택 영역의 끝점을 9번째 위치 또는 그 이후의 단어 경계까지 확장합니다.

void paste()

현재 선택된 텍스트를 시스템 클립보드의 내용으로 대체합니다.

int positionAt(int x, int y)

픽셀 위치(x, y)에 가장 가까운 텍스트 위치를 반환합니다.

위치 0은 첫 번째 문자 이전, 위치 1은 첫 번째 문자 이후이지만 두 번째 문자 이전이며, 이와 같이 모든 문자가 끝난 후인 ` text.length` 위치까지 이어집니다.

rectangle positionToRectangle(position)

텍스트 내의 지정된 position 에 해당하는 사각형을 반환합니다. x, y 및 height 속성은 해당 위치를 나타내는 커서에 해당합니다.

void redo()

`redo`가 ` available`인 경우 마지막 작업을 다시 수행합니다.

string remove(int start, int end)

TextEdit 에서 start 와 end 위치 사이에 있는 텍스트 부분을 제거합니다.

void select(int start, int end)

start 부터 end 까지의 텍스트를 선택합니다.

시작 위치나 끝 위치 중 하나라도 범위를 벗어날 경우, 선택 범위는 변경되지 않습니다.

이 메서드를 호출한 후, selectionStart 는 더 작은 값이 되고 selectionEnd 는 더 큰 값이 됩니다(이 메서드에 전달된 순서와 무관하게).

selectionStart 및 selectionEnd도 참조하십시오 .

void selectAll()

모든 텍스트를 선택합니다.

void selectWord()

현재 커서 위치에서 가장 가까운 단어를 선택합니다.

void undo()

`undo`가 ` available`인 경우 마지막 작업을 취소합니다. 현재 선택된 항목을 모두 선택 해제하고, 선택 시작 위치를 현재 커서 위치로 업데이트합니다.

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