이 페이지에서

TextInput QML Type

편집 가능한 텍스트 한 줄을 표시합니다. 더 보기...

Import Statement: import QtQuick
Inherits:

Item

Inherited By:

TextField

속성

신호

방법

상세 설명

TextInput 유형은 편집 가능한 일반 텍스트 한 줄을 표시합니다.

TextInput은 한 줄의 텍스트 입력을 수신하는 데 사용됩니다. TextInput 항목에는 입력 제약 조건을 적용할 수 있으며(예: validator 또는 inputMask 를 통해), echoMode 를 적절한 값으로 설정하면 TextInput을 비밀번호 입력 필드로 사용할 수 있습니다.

사용자가 Return 또는 Enter 키를 눌러 텍스트를 입력할 때 이에 반응하려면 accepted() 신호를 처리해야 합니다. Return 또는 Enter 키가 눌리고 텍스트 입력 필드의 포커스가 사라지면 editingFinished() 신호가 발생합니다. 사용자가 텍스트를 어떤 방식으로든 편집하면 textEdited() 신호가 발생합니다. 대부분의 경우 textChanged() 보다 이러한 신호를 우선적으로 사용하는 것이 좋습니다.

macOS에서는 Home/End 키에 대한 위/아래 화살표 키 바인딩이 명시적으로 비활성화되어 있습니다. (어떤 플랫폼에서든) 이러한 바인딩을 사용하려면 QML에서 직접 구현해야 합니다.

TextEdit 및 Text도 참조하십시오 .

속성 문서

acceptableInput : bool [read-only]

이 속성은 유효성 검사기나 입력 마스크가 설정되지 않은 경우 항상 true입니다. 유효성 검사기나 입력 마스크가 설정된 경우, 이 속성은 현재 텍스트가 유효성 검사기나 입력 마스크에 의해 최종 문자열(중간 문자열이 아닌)로 허용될 때만 true가 됩니다.

activeFocusOnPress : bool

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

autoScroll : bool

텍스트가 너비보다 길 경우 TextInput 가 스크롤되어야 하는지 여부입니다. 기본적으로 이 값은 true로 설정되어 있습니다.

ensureVisible()도 참조하십시오 .

bottomPadding : real

leftPadding : real

padding : real

rightPadding : real

topPadding : real

이 속성들은 콘텐츠 주변의 여백을 지정합니다. 이 공간은 ` contentWidth ` 및 ` contentHeight`에 추가로 할당됩니다.

개별 패딩 속성은 명시적으로 설정되지 않은 한 ` padding ` 속성의 값을 상속합니다. 예를 들어, ` padding `이 ` 4 `로 설정되고 ` leftPadding `이 ` 8`로 설정된 경우, ` 8 `가 왼쪽 패딩으로 사용됩니다.

참고: ` TextInput`에 명시적인 너비나 높이가 지정된경우 , 해당 패딩 값을 수용할 수 있을 만큼 충분히 큰지 주의해야 합니다. 예를 들어, ` topPadding `과 ` bottomPadding `이 ` 10`로 설정되어 있지만, ` TextInput `의 높이가 ` 20`로만 설정된 경우, 텍스트를 렌더링할 수 있는 수직 공간이 부족하여 텍스트가 잘려 표시됩니다.

canPaste : bool [read-only]

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

canRedo : bool [read-only]

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

canUndo : bool [read-only]

TextInput 가 쓰기 가능하고, 취소할 수 있는 이전 작업이 있는 경우 true를 반환합니다.

color : color

텍스트 색상.

contentHeight : real [read-only]

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

contentWidth : real [read-only]

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

cursorDelegate : Component

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

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

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

cursorPosition : int

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

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

displayText echoMode 가 로 설정된 경우, 은 각각 "좁은" 문자(cursorPosition은 항상 1씩 이동함)가 되며, 의 텍스트가 그렇지 않더라도 마찬가지입니다. TextInput.Password passwordCharacter TextInput

cursorRectangle : rectangle [read-only]

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

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

cursorVisible : bool

TextInput 에 커서가 표시될 때 true로 설정합니다.

이 속성은 TextInput 가 활성 포커스를 받을 때 설정 및 해제되므로, 다른 속성들을 현재 커서가 표시되는 여부에 따라 바인딩할 수 있습니다. 이 속성은 자동으로 설정 및 해제되므로, 직접 값을 설정할 때는 해당 값이 덮어쓰일 수 있다는 점을 유의해야 합니다.

예를 들어, KeyProxy가 키 입력을 이 항목으로 전달할 때 해당 상황에서 항목이 활성화된 것처럼 보이게 하려는 경우(실제로 활성 포커스를 부여하지 않으면서) 스크립트에서 직접 설정할 수 있습니다.

아래 QML 예시와 같이 항목에 직접 설정해서는 안 됩니다. 포커스가 변경되면 지정한 값이 덮어쓰여져 사라지기 때문입니다.

TextInput {
    text: "Text"
    cursorVisible: false
}

위의 코드 조각에서 TextInput 가 활성 포커스를 얻으면 커서가 여전히 표시됩니다.

displayText : string [read-only]

TextInput 에 표시되는 텍스트입니다.

echoMode 가 TextInput::Normal로 설정된 경우, 이 속성은 TextInput::text 속성과 동일한 값을 가집니다. 그렇지 않은 경우, 이 속성은 사용자에게 표시되는 텍스트를 포함하며, text 속성은 실제로 입력된 텍스트를 포함합니다.

참고: TextInput::text 속성과달리 , 이 속성에는 입력 방식에서 부분적으로 입력된 텍스트가 포함됩니다.

참조: preeditText.

echoMode : enumeration

TextInput 에서 텍스트가 어떻게 표시될지 지정합니다.

상수설명
TextInput.Normal텍스트를 있는 그대로 표시합니다. (기본값)
TextInput.Password실제 문자 대신 passwordCharacter 를 표시합니다. 편집 중에는 새로 입력된 문자가 passwordMaskDelay 속성으로 지정된 짧은 시간 동안 일반 텍스트로 표시됩니다.
TextInput.NoEcho아무것도 표시하지 않습니다.
TextInput.PasswordEchoOnEditTextInput.Password 와 마찬가지로 내용이 가려집니다. 편집 중에는 ‘ TextInput ’에 포커스가 있는 동안 새로 입력된 문자가 일반 텍스트로 표시됩니다.

effectiveHorizontalAlignment : enumeration [read-only]

LayoutMirroring::enabled 속성을 사용하여 애플리케이션 레이아웃을 거울처럼 반전시킬 경우, 텍스트의 수평 정렬도 함께 반전됩니다. 하지만 horizontalAlignment 속성은 변경되지 않습니다. TextInput 의 실제 수평 정렬을 확인하려면, 읽기 전용 속성인 effectiveHorizontalAlignment 을 사용하십시오.

font.bold : bool

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

font.capitalization : enumeration

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

상수설명
Font.MixedCase일반 경우: 대소문자 변경이 적용되지 않습니다
Font.AllUppercase텍스트를 모두 대문자로 렌더링되도록 변경합니다
Font.AllLowercase텍스트가 모두 소문자로 렌더링되도록 변경합니다.
Font.SmallCaps텍스트를 소문자 대문자(small-caps)로 렌더링하도록 변경합니다
Font.Capitalize각 단어의 첫 글자를 대문자로 표시하여 텍스트를 렌더링합니다
Text { 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

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

이 함수를 사용하면 글꼴이 장치에 종속됩니다. 장치와 무관하게 글꼴 크기를 설정하려면 ` 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

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

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

horizontalAlignment : enumeration

verticalAlignment : enumeration

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

TextInput TextInput 에는 세로 정렬이 없습니다. 이는 자연스러운 높이가 텍스트 한 줄의 높이와 정확히 일치하기 때문입니다. 높이를 수동으로 더 크게 설정하면 는 항상 세로로 상단에 정렬됩니다. 앵커를 사용하여 다른 항목 내에서 원하는 대로 정렬할 수 있습니다.

horizontalAlignment 의 유효한 값은 TextInput.AlignLeft, TextInput.AlignRight 및 TextInput.AlignHCenter 입니다.

verticalAlignment 의 유효한 값은 TextInput.AlignTop (기본값), TextInput.AlignBottom, TextInput.AlignVCenter 입니다.

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

inputMask : string

TextInput 에 입력 마스크를 설정하여 허용되는 텍스트 입력을 제한할 수 있습니다. TextInput 에서도 정확히 동일한 마스크 문자열이 사용되므로, 자세한 내용은 QLineEdit::inputMask 을 참조하십시오.

acceptableInput 및 validator도 참조하십시오 .

inputMethodComposing : bool [read-only]

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

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

inputMethodHints : enumeration

텍스트 입력의 예상 내용과 작동 방식에 대한 힌트를 입력 방식에 제공합니다.

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

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

상수설명
Qt.ImhHiddenText일반적으로 비밀번호를 입력할 때 사용되는 것처럼 문자가 숨겨져야 합니다.

Android IME는 비밀번호 입력란에 대해 의도적으로 라틴/ASCII 문자 입력만 허용한다는 점에 유의하십시오.

상수설명
Qt.ImhSensitiveData입력된 텍스트는 예측 사용자 사전과 같은 영구 저장소에 활성 입력 방식에 의해 저장되어서는 안 됩니다.

Qt 프레임워크는 이를 표시된 비밀번호로 취급하며, 이 경우 Android IME는 의도적으로 라틴/ASCII 문자 입력만 허용합니다.

상수설명
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]

TextInput 항목의 총 문자 수를 반환합니다.

TextInput 에 inputMask 가 있는 경우, 길이는 마스크 문자를 포함하며 text 속성이 반환하는 문자열의 길이와 다를 수 있습니다.

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

maximumLength : int

TextInput 의 텍스트 최대 허용 길이.

텍스트가 너무 길 경우, 제한 길이에 도달하면 잘립니다.

기본적으로 이 속성의 값은 32767입니다.

mouseSelectionMode : enumeration

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

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

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

overwriteMode : bool

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

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

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

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

passwordCharacter : string

echoMode 가 Password 또는 PasswordEchoOnEdit로 설정되었을 때 표시되는 문자입니다. 기본적으로 플랫폼 테마에서 사용하는 비밀번호 문자가 적용됩니다.

이 속성이 두 글자 이상의 문자열로 설정된 경우, 첫 번째 글자가 사용됩니다. 문자열이 비어 있으면 값은 무시되며 속성은 설정되지 않습니다.

passwordMaskDelay : int

가시적인 문자가 비밀번호 문자로 가려지기까지의 지연 시간을 밀리초 단위로 설정합니다.

undefined를 할당하면 reset 메서드가 호출됩니다.

persistentSelection : bool

TextInput 가 화면 내의 다른 항목으로 포커스가 이동했을 때 선택 상태를 유지해야 하는지 여부입니다. 기본값은 false입니다.

preeditText : string [read-only]

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

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

displayText 및 inputMethodHints항목도 참조하십시오 .

readOnly : bool

사용자 입력을 통해 ` TextInput`의 내용을 수정할 수 있는지 여부를 설정합니다.

readOnly가 true로 설정된 경우, 사용자 입력은 text 속성에 영향을 미치지 않습니다. 바인딩이나 text 속성을 설정하려는 시도는 여전히 정상적으로 작동합니다.

renderType : enumeration

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

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

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

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

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

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

selectByMouse : bool

기본값은 true 입니다.

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

참고: 6.4 이전버전에서는 기본값이 ` false`이었으나, 이 속성을 활성화하면 터치스크린에서 손가락을 드래그하여 텍스트를 선택할 수도 있었습니다. 이는 `Flickable` 내부에서 ` TextInput `이 사용될 때 플릭 동작에 간섭을 일으켰습니다. TextField 와의 일관성을 위해, selectByMouse는 이제 문자 그대로의 의미를 갖습니다. 즉, true 인 경우 마우스로만 드래그하여 텍스트를 선택할 수 있습니다. 이 변경 사항이 애플리케이션에 적합하지 않은 경우, selectByMouse 를 false 로 설정하거나, 이전 API 버전(예: import QtQuick 6.3)을 임포트하여 이전 동작으로 되돌릴 수 있습니다. 임포트 버전을 변경하여 동작을 되돌리는 옵션은 향후 Qt 버전에서 제거될 예정입니다.

selectedText : string [read-only]

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

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

myTextInput.text.toString().substring(myTextInput.selectionStart,
    myTextInput.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도 참조하십시오 .

text : string

TextInput 속성의 텍스트.

일부 키보드에는 예측 기능이 탑재되어 있습니다. 이 경우, 입력 방식에 의해 작성 중인 텍스트는 이 속성의 일부가 아닙니다. 예측과 관련된 텍스트 부분은 밑줄이 그어져 있으며 preeditText 속성에 저장됩니다. TextInput 에 표시된 전체 텍스트를 가져오려면 displayText 속성을 사용하십시오.

clear(), displayText, preeditText, accepted(), editingFinished(), textEdited()도 참조하십시오 .

validator : Validator

TextInput 에 유효성 검사기를 설정할 수 있습니다. 유효성 검사기가 설정되면 TextInput 는 text 속성을 허용 가능한 상태나 중간 상태로 유지하는 입력만 허용합니다. Enter 키를 누를 때 text가 허용 가능한 상태일 경우에만 accepted 신호가 전송됩니다.

현재 지원되는 유효성 검사기는 IntValidator, DoubleValidator 및 RegularExpressionValidator 입니다. 다음은 텍스트 입력란에 11에서 31 사이의 정수만 입력할 수 있도록 유효성 검사기를 사용한 예시입니다:

import QtQuick 2.0
TextInput{
    validator: IntValidator{bottom: 11; top: 31;}
    focus: true
}

acceptableInput 및 inputMask도 참조하십시오 .

wrapMode : enumeration

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

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

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

Signal 문서

accepted()

이 신호는 Return 키나 Enter 키를 누를 때 발생합니다. 텍스트 입력 필드에 validator 또는 inputMask 가 설정되어 있는 경우, 입력이 허용 가능한 상태일 때만 이 신호가 발생한다는 점에 유의하십시오.

참고: 이에 대응하는핸들러는 onAccepted 입니다.

editingFinished() 및 textEdited()도 참조하십시오 .

editingFinished()

이 신호는 Return 또는 Enter 키를 누르거나 텍스트 입력 필드의 포커스가 사라질 때 발생합니다. 텍스트 입력 필드에 유효성 검사기(validator)나 유효성 검사기 처리기( inputMask )가 설정되어 있는 상태에서 Enter/Return 키를 누르면, 해당 입력 내용이 입력 규칙( inputMask )을 따르고 유효성 검사기가 허용 가능한 상태를 반환하는 경우에만 이 신호가 발생한다는 점에 유의하십시오.

참고: 이에 대응하는핸들러는 onEditingFinished 입니다.

accepted() 및 textEdited()도 참조하십시오 .

textEdited()

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

참고: 이에 대응하는핸들러는 onTextEdited 입니다.

accepted() 및 editingFinished()도 참조하십시오 .

메서드 문서

void clear()

텍스트 입력란의 내용을 지우고, 입력 방식에서 입력된 부분 텍스트를 초기화합니다.

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

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

void copy()

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

참고: 에코 모드가 ‘일반(Normal)’ 이외의 모드로 설정된경우 복사 기능이 작동하지 않습니다. 이는 복사 기능을 라인 컨트롤의 암호 기능을 우회하는 수단으로 사용하는 것을 방지하기 위함입니다.

void cut()

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

참고: 에코 모드가 '일반(Normal)' 이외의 모드로 설정된경우 , 잘라내기 기능이 작동하지 않습니다. 이는 잘라내기 기능을 사용하여 라인 컨트롤의 암호 기능을 우회하는 것을 방지하기 위함입니다.

void deselect()

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

void ensureVisible(int position)

지정된 문자 position 가 텍스트 입력란의 경계 내에 보이도록 텍스트 입력란의 내용을 스크롤합니다.

autoScroll도 참조하십시오 .

string getText(int start, int end)

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

TextInput 에 inputMask 가 있는 경우, 길이에 마스크 문자가 포함됩니다.

void insert(int position, string text)

position 에 있는 TextInput 에 text 를 삽입합니다.

bool isRightToLeft(int start, int end)

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

void moveCursorSelection(int position, SelectionMode mode)

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

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

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

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

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

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

이 호출은 커서를 5번째 위치로 이동시키고, 선택 영역의 끝을 5에서 9로 확장한 다음, 선택 영역의 끝을 9에서 7로 되돌려 5번째 위치부터 7번째 위치까지의 텍스트(6번째와 7번째 문자)가 선택되도록 합니다.

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

void paste()

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

int positionAt(real x, real y, CursorPosition position)

이 함수는 textInput의 왼쪽 상단 모서리에서 x 및 y 픽셀 떨어진 위치에 있는 문자의 위치를 반환합니다. 위치 0은 첫 번째 문자 이전, 위치 1은 첫 번째 문자 이후이지만 두 번째 문자 이전이며, 이와 같은 방식으로 모든 문자가 끝난 후인 text.length 위치까지 이어집니다.

즉, 첫 번째 문자 이전의 모든 x 값에 대해서는 이 함수가 0을 반환하고, 마지막 문자 이후의 모든 x 값에 대해서는 text.length를 반환합니다. y 값이 텍스트 위쪽에 있으면 첫 번째 줄에서 가장 가까운 문자의 위치가 반환되고, 텍스트 아래쪽에 있으면 마지막 줄에서 가장 가까운 문자의 위치가 반환됩니다.

커서 position 매개변수는 커서 위치를 어떻게 결정할지 지정합니다:

상수설명
TextInput.CursorBetweenCharactersx에 가장 가까운 문자 사이의 위치를 반환합니다. 이 값이 기본값입니다.
TextInput.CursorOnCharacterx에 가장 가까운 문자의 바로 앞 위치를 반환합니다.

rect positionToRectangle(int pos)

이 함수는 문자 위치 pos 를 인수로 받아, 커서가 해당 문자 위치에 놓여 있을 때 차지하게 될 사각형을 반환합니다.

이는 cursorPosition 을 설정한 다음 커서 사각형을 조회하는 것과 유사하지만, cursorPosition 은 변경되지 않습니다.

void redo()

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

void remove(int start, int end)

TextInput 에서 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.