TextEdit QML Type

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

Import Statement: import QtQuick
Inherits:

Item

속성

신호

방법

상세 설명

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

일반 텍스트와 서식 있는 텍스트를 모두 표시할 수 있습니다. 예:

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

focustrue 으로 설정하면 텍스트 편집 항목이 키보드 포커스를 받도록 설정할 수 있습니다.

텍스트 편집기는 스크롤, 커서 따라가기 또는 기타 모양과 느낌에 특정한 동작을 구현하지 않는다는 점에 유의하세요. 예를 들어 커서를 따라 쓸 수 있는 스크롤을 추가하려면 다음과 같이 하세요:

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)
     }
 }

특정 모양과 느낌에서는 부드러운 스크롤(예: SmoothedAnimation)을 사용하거나, 스크롤바를 표시하거나, 위치를 표시하기 위해 페이드 인하는 스크롤바를 사용할 수 있습니다.

클립보드 지원은 cut(), copy() 및 paste() 함수에서 제공됩니다. 텍스트는 selectByMousefalse 로 설정되지 않은 경우 일반적인 방법으로 마우스로, selectByKeyboardfalse 로 설정되지 않은 경우 Shift+arrow 키 조합을 사용하여 키보드로 선택할 수 있습니다. 프로그래밍 방식으로 텍스트를 선택하려면 selectionStartselectionEnd 속성을 설정하거나 selectAll() 또는 selectWord()을 사용할 수 있습니다.

positionAt() 및 positionToRectangle()을 사용하여 커서 위치(문서 시작 부분의 문자)와 픽셀 포인트 사이를 변환할 수 있습니다.

Text, TextInput, TextAreaQt Quick Controls - 텍스트 편집기를참조하세요 .

속성 문서

effectiveHorizontalAlignment : enumeration [read-only]

horizontalAlignment : enumeration

verticalAlignment : enumeration

TextEdit 항목의 너비와 높이 내에서 텍스트의 가로 및 세로 맞춤을 설정합니다. 기본적으로 텍스트 정렬은 텍스트의 자연스러운 정렬을 따릅니다(예: 왼쪽에서 오른쪽으로 읽는 텍스트는 왼쪽으로 정렬됨).

horizontalAlignment 에 유효한 값은 다음과 같습니다:

Constant설명
TextEdit.AlignLeft오른쪽 가장자리가 울퉁불퉁한 왼쪽 정렬(기본값)
TextEdit.AlignRight각 줄을 오른쪽에 정렬하고 왼쪽 가장자리를 들쭉날쭉하게 정렬합니다.
TextEdit.AlignHCenter각 줄을 중앙에 정렬
TextEdit.AlignJustify각 줄을 오른쪽과 왼쪽에 정렬하여 필요에 따라 단어를 펼칩니다.

verticalAlignment 의 유효한 값은 다음과 같습니다:

상수설명
TextEdit.AlignTop항목의 상단에서 시작(기본값)
TextEdit.AlignBottom마지막 줄을 하단에 정렬하고 다른 줄은 위에 정렬합니다.
TextEdit.AlignVCenter가운데를 세로로 정렬

첨부된 속성 LayoutMirroring::enabled 을 사용하여 애플리케이션 레이아웃을 미러링하는 경우 텍스트의 가로 정렬도 미러링됩니다. 그러나 horizontalAlignment 속성은 변경되지 않습니다. TextEdit 의 유효 가로 맞춤을 쿼리하려면 읽기 전용 속성 effectiveHorizontalAlignment 을 사용합니다.


bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

이러한 속성은 콘텐츠 주위에 패딩을 유지합니다. 이 공간은 contentWidthcontentHeight 과 함께 예약되어 있습니다.


activeFocusOnPress : bool

마우스를 누르면 TextEdit 에 활성 포커스를 적용할지 여부입니다. 기본적으로 이 속성은 true로 설정됩니다.


baseUrl : url

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

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


canPaste : bool [read-only]

TextEdit 가 쓰기 가능하고 클립보드의 콘텐츠가 TextEdit 에 붙여넣기에 적합한 경우 참을 반환합니다.


canRedo : bool [read-only]

TextEdit 가 쓰기 가능하고 다시 실행할 수 있는 undone 작업이 있는 경우 참을 반환합니다.


canUndo : bool [read-only]

TextEdit 이 쓰기 가능하고 실행 취소할 수 있는 이전 작업이 있으면 참을 반환합니다.


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

델리게이트 컴포넌트의 루트 항목은 QQuickItem 또는 QQuickItem 파생 항목이어야 합니다.


cursorPosition : int

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

참고: 이 경우 문자는 QChar 객체의 문자열을 참조하므로 16비트 유니코드 문자이며, 위치는 이 문자열에 대한 인덱스로 간주됩니다. 대리 쌍, 언어 결합 또는 분음 부호 등의 경우처럼 하나의 문자가 여러 유니코드 문자로 표현될 수 있으므로 이는 문자 체계의 개별 문자와 반드시 일치하지는 않습니다.


cursorRectangle : rectangle [read-only]

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

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


cursorSelection : QtQuick::TextSelection [read-only, preliminary]

이 속성은 개발 중이며 변경될 수 있습니다.

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

이 프로퍼티는 Qt 6.7에 도입되었습니다.

selectedText, selectionStart, selectionEnd참조하세요 .


cursorVisible : bool

참이면 텍스트 편집에 커서가 표시됩니다.

이 속성은 텍스트 편집에 활성 포커스가 있을 때 설정 및 해제되지만 직접 설정할 수도 있습니다(예: 키 프록시가 키를 전달할 때 유용함).


font.bold : bool

글꼴 굵기 - 글꼴 굵기 여부를 설정합니다.


font.capitalization : enumeration

텍스트의 대문자를 설정합니다.

Constant설명
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로 설정하면 입력 문자열의 가장 큰 하위 집합과 일치하는 대체 글꼴을 대신 찾습니다. 이 경우 누락된 글리프가 있는 문자열의 경우 비용이 더 많이 들지만 보다 일관된 결과를 얻을 수 있습니다. 기본적으로 contextFontMergingfalse 입니다.

이 프로퍼티는 Qt 6.8에 도입되었습니다.

QFont::StyleStrategy참조하십시오 .


font.family : string

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

패밀리 이름은 대소문자를 구분하지 않으며 선택적으로 파운드리 이름(예: "Helvetica [Cronyx]")을 포함할 수 있습니다. 두 개 이상의 파운드리에서 제품군을 사용할 수 있고 파운드리가 지정되지 않은 경우 임의의 파운드리가 선택됩니다. 해당 서체를 사용할 수 없는 경우 글꼴 일치 알고리즘을 사용하여 서체를 설정합니다.


font.features : object [since 6.6]

features 의 내용을 기반으로 텍스트 모양을 만들 때 특정 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 기능은 QFontfont.kerning 속성에 따라 활성화/비활성화됩니다. 또한 font.letterSpacing 이 설정된 경우 모든 합자 기능(liga, clig, dlig, hlig)이 비활성화되지만, 이는 합자를 사용하는 것이 외관상인 쓰기 시스템에 대해서만 해당됩니다. 합자가 필요한 쓰기 시스템의 경우 기능은 기본 상태로 유지됩니다. font.features 을 사용하여 설정한 값은 기본 동작을 재정의합니다. 예를 들어 "kern" 을 1로 설정하면 font.kerning 속성이 false로 설정되었는지 여부에 관계없이 커닝이 항상 활성화됩니다. 마찬가지로 0 로 설정된 경우 항상 비활성화됩니다.

이 프로퍼티는 Qt 6.6에 도입되었습니다.

QFont::setFeature()도 참조하세요 .


font.hintingPreference : enumeration

텍스트에 대한 기본 힌트를 설정합니다. 이는 특정 수준의 힌트를 사용하도록 기본 텍스트 렌더링 시스템에 대한 힌트이며, 플랫폼에 따라 지원 여부가 다릅니다. 자세한 내용은 QFont::HintingPreference 설명서의 표를 참조하세요.

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

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

font.italic : bool

글꼴에 이탤릭체 스타일을 사용할지 여부를 설정합니다.


font.kerning : bool

텍스트 모양을 만들 때 커닝 OpenType 기능을 활성화 또는 비활성화합니다. 이 기능을 비활성화하면 텍스트를 만들거나 변경할 때 성능이 향상될 수 있지만 일부 외형적 기능이 희생될 수 있습니다. 기본값은 true입니다.

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

font.letterSpacing : real

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

문자 간격은 글꼴의 개별 문자 사이의 기본 간격을 변경합니다. 양수 값은 해당 픽셀만큼 글자 간격을 늘리고 음수 값은 글자 간격을 줄입니다.


font.pixelSize : int

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

이 기능을 사용하면 글꼴 장치가 종속됩니다. 글꼴 크기를 기기와 독립적으로 설정하려면 TextEdit::font.pointSize 을 사용하세요.


font.pointSize : real

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


font.preferShaping : bool

글꼴은 문자를 올바르게 표시하기 위해 문자 집합에 복잡한 규칙을 적용하는 경우가 있습니다. 브라만 문자와 같은 일부 문자 체계에서는 텍스트를 읽기 위해 이러한 규칙이 필요하지만 라틴 문자와 같은 문자 체계에서는 단지 외형적인 기능일 뿐입니다. preferShaping 속성을 false로 설정하면 필요하지 않은 경우 이러한 기능이 모두 비활성화되므로 대부분의 경우 성능이 향상됩니다.

기본값은 참입니다.

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

font.preferTypoLineMetrics : bool [since 6.8]

글꼴의 ascent, descentleading 을 제공하는 수직선 메트릭의 경쟁 세트. 이러한 메트릭은 종종 승리 (Windows) 메트릭과 오타 (오타) 메트릭이라고도 합니다. 사양에서는 줄 간격에 typo 메트릭을 사용할 것을 권장하지만, 글꼴의 fsSelection 필드에 USE_TYPO_METRICS 플래그가 설정되어 있지 않은 한 많은 애플리케이션에서 win 메트릭을 선호합니다. 이는 이전 버전과의 호환성을 위해 Qt 애플리케이션에서도 마찬가지입니다. typo 메트릭이 유효함을 나타내기 위해 USE_TYPO_METRICS 플래그를 설정한 글꼴이나 win 메트릭과 typo 메트릭이 일치하는 글꼴의 경우에는 문제가 되지 않습니다. 그러나 특정 글꼴의 경우 win 메트릭이 바람직한 줄 간격보다 클 수 있으며 실수로 USE_TYPO_METRICS 플래그가 설정되지 않을 수 있습니다. 이러한 글꼴의 경우 font.preferTypoLineMetrics 을 설정하면 더 나은 결과를 얻을 수 있습니다.

기본적으로 preferTypoLineMetricsfalse 입니다.

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

QFont::StyleStrategy참조하십시오 .


font.strikeout : bool

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


font.styleName : string

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

스타일 이름은 대소문자를 구분하지 않습니다. 설정하면 글꼴은 글꼴 속성 font.weight, font.boldfont.italic 대신 스타일 이름과 일치합니다.


font.underline : bool

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


font.variableAxes : object [since 6.7]

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

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

경우에 따라 다른 축에 임의의 값을 제공하는 것도 유용합니다. 예를 들어 글꼴에 일반 및 굵게 하위 패밀리가 있는 경우 이 사이에 가중치를 지정하고 싶을 수 있습니다. 그런 다음 글꼴의 "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 (라틴 1 문자 4개로 구성된 시퀀스)의 요구 사항을 충족해야 한다는 것입니다.

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

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

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

QFont::setVariableAxis()도 참조하세요 .


font.weight : int

글꼴의 요청된 무게입니다. 요청된 가중치는 1에서 1000 사이의 정수이거나 미리 정의된 값 중 하나여야 합니다:

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

font.wordSpacing : real

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

단어 간격은 개별 단어 사이의 기본 간격을 변경합니다. 양수 값은 해당 픽셀만큼 단어 간격을 늘리고 음수 값은 그에 따라 단어 간 간격을 줄입니다.


이 속성에는 사용자가 텍스트에 삽입된 링크를 마우스로 가리킬 때 링크 문자열이 포함됩니다. 링크는 서식 있는 텍스트 또는 HTML 형식이어야 하며 링크 문자열은 특정 링크에 대한 액세스를 제공해야 합니다.

linkHoveredlinkAt()도 참조하세요 .


inputMethodComposing : bool [read-only]

이 속성은 TextEdit 에 입력 메서드에서 부분 텍스트 입력이 있는지 여부를 보유합니다.

입력 메서드를 작성하는 동안 TextEdit 의 마우스 또는 키 이벤트에 의존하여 부분 텍스트를 편집하거나 커밋할 수 있습니다. 이 속성은 입력 메서드의 올바른 작동을 방해할 수 있는 이벤트 핸들러를 비활성화할 시기를 결정하는 데 사용할 수 있습니다.


inputMethodHints : enumeration

입력 메서드에 텍스트 편집의 예상 콘텐츠와 작동 방식에 대한 힌트를 제공합니다.

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

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

Constant설명
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 가 참인 경우에만 적용됩니다.


overwriteMode : bool

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

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

이 속성이 true 인 경우 기존 텍스트를 새 텍스트로 한 글자씩 덮어쓰고, 그렇지 않으면 커서 위치에 텍스트가 삽입되어 기존 텍스트를 대체합니다.

기본적으로 이 속성은 false 입니다(새 텍스트는 기존 텍스트를 덮어쓰지 않음).


persistentSelection : bool

씬의 다른 항목으로 활성 포커스를 잃었을 때 TextEdit 선택 영역을 계속 표시할지 여부입니다. 기본적으로 이 속성은 false로 설정됩니다.


preeditText : string [read-only]

이 속성에는 입력 메서드의 부분 텍스트 입력이 포함됩니다.

예측 결과의 부분 텍스트를 끄려면 inputMethodHints 에서 Qt.ImhNoPredictiveText 플래그를 설정합니다.

inputMethodHints참조하세요 .


readOnly : bool

사용자가 TextEdit 항목과 상호 작용할 수 있는지 여부. 이 속성을 true로 설정하면 사용자 상호 작용으로 텍스트를 편집할 수 없습니다.

기본적으로 이 속성은 거짓입니다.


renderType : enumeration

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

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

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

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

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

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


selectByKeyboard : bool

편집기가 편집 가능한 경우 기본값은 참이고 읽기 전용인 경우 거짓입니다.

참이면 편집기가 읽기 전용인 경우에도 사용자가 키보드를 사용하여 텍스트를 선택할 수 있습니다. false이면 편집기가 편집 가능한 경우에도 키보드를 사용하여 텍스트를 선택할 수 없습니다.

readOnly참조하세요 .


selectByMouse : bool

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

true 인 경우 사용자는 일반적인 방법으로 마우스를 사용하여 텍스트를 선택할 수 있습니다.

참고: 6.4 이전 버전에서는 기본값이 false 이었지만 이 속성을 활성화하면 터치스크린에서 손가락으로 드래그하여 텍스트를 선택할 수도 있습니다. 이 때문에 플릭커블 내에서 TextEdit 을 사용할 때 플릭을 방해했습니다. 그러나 Qt는 5.7 버전부터 QInputMethod 을 통해 모바일 플랫폼과 임베디드 플랫폼에서 Qt Virtual Keyboard 을 사용하는 텍스트 선택 핸들을 지원했습니다. 대부분의 사용자는 부모 플릭커블을 플릭하지 않고 선택한 텍스트를 손가락으로 드래그하면 놀랄 것입니다. 따라서 true 에서는 마우스로만 드래그하여 텍스트를 선택할 수 있지만, 플랫폼에서는 터치스크린에서 선택 핸들을 제공할 것으로 예상되므로 이제 selectByMouse는 실제로 의미 그대로입니다. 이 변경 사항이 애플리케이션에 적합하지 않은 경우 selectByMousefalse 으로 설정하거나 이전 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

표시할 텍스트입니다. 텍스트 형식이 자동 텍스트인 경우 텍스트 편집은 텍스트를 서식 있는 텍스트로 처리할지 여부를 자동으로 결정합니다. 이 결정은 Qt::mightBeRichText()를 사용하여 이루어집니다. 그러나 마크다운 감지는 자동으로 이루어지지 않습니다.

텍스트 속성은 주로 초기 콘텐츠를 설정하고 비교적 작은 텍스트 콘텐츠에 대한 수정을 처리하는 데 적합합니다. append (), insert() 및 remove() 메서드는 특히 큰 서식 있는 텍스트 콘텐츠를 수정할 때 더 세밀하게 제어하고 훨씬 더 나은 성능을 제공합니다.

일부 키보드에서는 예측 기능을 사용한다는 점에 유의하세요. 이 경우 입력 메서드로 작성되는 텍스트는 이 속성의 일부가 아닙니다. 예측과 관련된 텍스트 부분은 밑줄이 그어져 preeditText 속성에 저장됩니다.

TextDocument::source 을 사용하여 텍스트를 로드한 경우 이 속성에서 로드된 텍스트를 검색할 수 있습니다. 이 경우 textFormat 을 변경하여 text 속성의 값을 변경하는 형식 변환을 수행할 수 있습니다. 예를 들어 textFormatRichText 또는 AutoText 인 경우 HTML 파일을 로드한 다음 textFormatMarkdownText 로 설정하면 text 속성에 HTML에서 마크다운으로 변환된 내용이 포함됩니다.

clear(), preeditText, textFormat도 참조하세요 .


textDocument : TextDocument [read-only]

TextEditQQuickTextDocument 을 반환합니다. Qt 6.7부터 파일 로드와 저장을 위한 기능이 추가되었습니다. 또한 C++에서 기본 QTextDocument 인스턴스에 액세스하는 수단으로 사용할 수 있습니다(예: QSyntaxHighlighter.

QQuickTextDocument도 참조하세요 .


textFormat : enumeration

text 속성이 표시되는 방식.

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

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

기본값은 TextEdit.PlainText 입니다. 텍스트 형식이 TextEdit.AutoText 으로 설정되어 있으면 텍스트 편집 시 텍스트가 서식 있는 텍스트로 처리될지 여부가 자동으로 결정됩니다. text 속성이 설정되어 있으면 텍스트의 첫 줄에 HTML 태그가 있는지 감지할 수 있지만 마크다운과 일반 텍스트를 구분할 수 없는 Qt::mightBeRichText()을 사용하여 이 결정이 이루어집니다. 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!*"
    }
}

TextEdit.MarkdownText 을 사용하면 GitHub 확인란 확 장을 사용하여 생성된 확인란을 대화형으로 확인할 수 있습니다.

TextDocument::source 속성이 설정된 경우 로드 후 textFormat 속성을 변경하면 감지된 형식에서 요청된 형식으로 변환하는 효과가 있습니다. 예를 들어 HTML과 마크다운 사이를 변환할 수 있습니다. 그러나 이러한 "리치" 형식 중 하나가 로드된 후 textFormatPlainText 으로 설정하면 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 을 사용하는 것이 좋습니다.


신호 문서

editingFinished()

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

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


linkActivated(string link)

이 신호는 사용자가 텍스트에 포함된 링크를 클릭할 때 발생합니다. 링크는 서식 있는 텍스트 또는 HTML 형식이어야 하며 link 문자열은 특정 링크에 대한 액세스를 제공합니다.

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


linkHovered(string link)

이 신호는 사용자가 텍스트에 삽입된 링크를 마우스로 가리키면 발생합니다. 링크는 서식 있는 텍스트 또는 HTML 형식이어야 하며 link 문자열은 특정 링크에 대한 액세스를 제공합니다.

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

hoveredLinklinkAt()도 참조하세요 .


메서드 문서

void append(string text)

TextEdit 끝에 text 를 사용하여 새 단락을 추가합니다.

새 단락을 삽입하지 않고 추가하려면 myTextEdit.insert(myTextEdit.length, text) 를 대신 호출하세요.


clear()

텍스트 편집 내용을 지우고 입력 메서드에서 부분적으로 입력된 텍스트를 초기화합니다.

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

QInputMethod::reset()도 참조하세요 .


copy()

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


cut()

현재 선택된 텍스트를 시스템 클립보드로 이동합니다.


deselect()

활성 텍스트 선택을 제거합니다.


string getFormattedText(int start, int end)

startend 위치 사이에 있는 텍스트 섹션을 반환합니다.

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


string getText(int start, int end)

startend 위치 사이에 있는 텍스트 섹션을 반환합니다.

반환된 텍스트에는 서식 있는 텍스트 서식이 포함되지 않습니다.


insert(int position, string text)

position 에서 TextEdittext 을 삽입합니다.


isRightToLeft(int start, int end)

startend 위치 사이에 있는 편집기 텍스트의 자연스러운 읽기 방향이 오른쪽에서 왼쪽인 경우 true를 반환합니다.


linkAt(real x, real y)

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

hoveredLink참조하세요 .


moveCursorSelection(int position, SelectionMode mode)

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

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

선택 모드는 선택 내용을 문자 단위로 업데이트할지, 단어 단위로 업데이트할지를 지정합니다. 지정하지 않으면 선택 모드의 기본값은 TextEdit.SelectCharacters 입니다.

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

예를 들어 이 호출 시퀀스를 살펴봅시다:

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

커서를 5 위치로 이동하고 선택 끝을 5에서 9로 확장한 다음 선택 끝을 9에서 7로 후퇴시켜 5에서 7 위치의 텍스트(6번째 및 7번째 문자)가 선택된 상태로 유지합니다.

TextEdit.SelectWords와 동일한 순서로 선택 시작을 5번 위치 이전 또는 위의 단어 경계로 확장하고 선택 끝을 9번 위치 또는 과거의 단어 경계로 확장합니다.


paste()

현재 선택된 텍스트를 시스템 클립보드의 콘텐츠로 바꿉니다.


int positionAt(int x, int y)

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

위치 0은 첫 번째 문자 앞, 위치 1은 첫 번째 문자 뒤이지만 두 번째 문자 앞, 위치 text.길이까지는 모든 문자 뒤입니다.


rectangle positionToRectangle(position)

텍스트에서 지정된 position 위치에 직사각형을 반환합니다. x, y 및 높이 속성은 해당 위치를 설명하는 커서에 해당합니다.


redo()

다시 실행이 available 인 경우 마지막 작업을 다시 실행합니다.


string remove(int start, int end)

TextEdit 에서 startend 위치 사이에 있는 텍스트 섹션을 제거합니다.


select(int start, int end)

start 에서 end 까지의 텍스트가 선택되도록 합니다.

시작 또는 끝이 범위를 벗어난 경우 선택 내용이 변경되지 않습니다.

이 메서드를 호출하면 이 메서드로 전달된 순서에 관계없이 selectionStart 이 더 작아지고 selectionEnd 이 더 커집니다.

selectionStartselectionEnd참조하세요 .


selectAll()

모든 텍스트가 선택되도록 합니다.


selectWord()

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


undo()

실행 취소가 available 인 경우 마지막 작업을 실행 취소합니다. 현재 선택 내용을 모두 선택 취소하고 선택 시작 부분을 현재 커서 위치로 업데이트합니다.


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