SpinBox QML Type
사용자가 사전 설정된 값 집합에서 선택할 수 있습니다. 자세히...
Import Statement: | import QtQuick.Controls |
Inherits: |
속성
- displayText : string
(since QtQuick.Controls 2.4 (Qt 5.11))
- down
- down.hovered : bool
- down.implicitIndicatorHeight : real
- down.implicitIndicatorWidth : real
- down.indicator : Item
- down.pressed : bool
- editable : bool
- from : int
- inputMethodComposing : bool
(since QtQuick.Controls 2.2 (Qt 5.9))
- inputMethodHints : flags
(since QtQuick.Controls 2.2 (Qt 5.9))
- live : bool
(since 6.6)
- stepSize : int
- textFromValue : function
- to : int
- up
- up.hovered : bool
- up.implicitIndicatorHeight : real
- up.implicitIndicatorWidth : real
- up.indicator : Item
- up.pressed : bool
- validator : Validator
- value : int
- valueFromText : function
- wrap : bool
(since QtQuick.Controls 2.3 (Qt 5.10))
신호
- valueModified()
(since QtQuick.Controls 2.2 (Qt 5.9))
방법
상세 설명
스핀박스를 사용하면 위쪽 또는 아래쪽 표시 버튼을 클릭하거나 키보드의 위쪽 또는 아래쪽을 눌러 정수 값을 선택할 수 있습니다. 선택적으로, 사용자가 입력 필드에 텍스트 값을 입력할 수 있도록 editable 으로도 SpinBox를 만들 수 있습니다.
기본적으로 SpinBox는 [0-99]
범위의 불연속 값과 stepSize 의 1
를 제공합니다.
SpinBox { value: 50 }
사용자 지정 값
SpinBox는 정수 값으로 작동하지만 임의의 입력 값을 허용하도록 사용자 정의할 수 있습니다. 다음 코드 조각은 validator, textFromValue 및 valueFromText 을 사용하여 기본 동작을 사용자 지정하는 방법을 보여줍니다.
SpinBox { id: spinBox from: 0 to: items.length - 1 value: 1 // "Medium" property var items: ["Small", "Medium", "Large"] validator: RegularExpressionValidator { regularExpression: new RegExp("(Small|Medium|Large)", "i") } textFromValue: function(value) { return items[value]; } valueFromText: function(text) { for (var i = 0; i < items.length; ++i) { if (items[i].toLowerCase().indexOf(text.toLowerCase()) === 0) return i } return spinBox.value } }
같은 방식으로 부동 소수점 숫자를 허용하도록 SpinBox를 사용자 지정할 수 있습니다:
SpinBox { id: spinBox from: 0 value: decimalToInt(1.1) to: decimalToInt(100) stepSize: decimalFactor editable: true anchors.centerIn: parent property int decimals: 2 property real realValue: value / decimalFactor readonly property int decimalFactor: Math.pow(10, decimals) function decimalToInt(decimal) { return decimal * decimalFactor } validator: DoubleValidator { bottom: Math.min(spinBox.from, spinBox.to) top: Math.max(spinBox.from, spinBox.to) decimals: spinBox.decimals notation: DoubleValidator.StandardNotation } textFromValue: function(value, locale) { return Number(value / decimalFactor).toLocaleString(locale, 'f', spinBox.decimals) } valueFromText: function(text, locale) { return Math.round(Number.fromLocaleString(locale, text) * decimalFactor) } }
정규 표현식을 사용하여 접두사와 접미사를 추가할 수 있습니다:
SpinBox { id: spinBox from: 0 value: 11 to: 100 editable: true anchors.centerIn: parent property string prefix: "L=" property string suffix: "m" validator: RegularExpressionValidator { regularExpression: /\D*(-?\d*\.?\d*)\D*/ } textFromValue: function(value, locale) { return prefix + Number(value).toLocaleString(locale, 'f', 0) + suffix } valueFromText: function(text, locale) { let re = /\D*(-?\d*\.?\d*)\D*/ return Number.fromLocaleString(locale, re.exec(text)[1]) } }
Tumbler, 스핀박스 사용자 지정하기 및 Qt Quick Controls 의 포커스 관리도참조하세요 .
프로퍼티 문서
displayText : string |
이 속성은 스핀박스의 텍스트 값을 저장합니다.
이 속성의 값은 textFromValue 및 locale 을 기반으로 하며 다음과 같습니다:
var text = spinBox.textFromValue(spinBox.value, spinBox.locale)
이 프로퍼티는 QtQuick.Controls 2.4(Qt 5.11)에 도입되었습니다.
textFromValue도 참조하십시오 .
inputMethodComposing : bool |
이 속성은 편집 가능한 스핀 상자에 입력 메서드에서 부분 텍스트 입력이 있는지 여부를 보유합니다.
입력 메서드는 작성하는 동안 스핀 상자의 마우스 또는 키 이벤트에 의존하여 부분 텍스트를 편집하거나 커밋할 수 있습니다. 이 속성은 입력 메서드의 올바른 작동을 방해할 수 있는 이벤트 핸들러를 언제 비활성화할지 결정하는 데 사용할 수 있습니다.
이 프로퍼티는 QtQuick.Controls 2.2(Qt 5.9)에 도입되었습니다.
inputMethodHints : flags |
이 속성은 스핀 박스의 예상 콘텐츠와 작동 방식에 대한 힌트를 입력 메서드에 제공합니다.
기본값은 Qt.ImhDigitsOnly
입니다.
이 값은 비트 단위의 플래그 조합이며, 힌트가 설정되지 않은 경우 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.ImhUrlCharactersOnly - URL에 적합한 문자만 허용됩니다.
Masks:
- Qt.ImhExclusiveInputMask - 이 마스크는 독점 플래그 중 하나라도 사용되면 0이 아닌 값을 반환합니다.
이 프로퍼티는 QtQuick.Controls 2.2(Qt 5.9)에 도입되었습니다.
live : bool |
이 속성은 사용자가 displayText 을 편집할 때 value 이 업데이트되는지 여부를 보유합니다. 기본값은 false
입니다. 이 속성이 true
이고 사용자가 입력한 값이 유효하고 스핀박스 [from, to] 범위 내에 있으면 SpinBox 의 값이 설정됩니다. 이 속성이 false
이거나 사용자가 입력한 값이 경계를 벗어난 경우, 입력 또는 리턴 키를 누르거나 입력 필드의 포커스가 사라질 때까지 값이 업데이트되지 않습니다.
이 속성은 Qt 6.6에 도입되었습니다.
editable 및 displayText 을참조하십시오 .
textFromValue : function |
이 프로퍼티는 텍스트를 표시하기 위해 정수 값을 변환해야 할 때마다 호출되는 콜백 함수를 보유합니다.
기본 함수를 재정의하여 주어진 값에 대한 사용자 지정 텍스트를 표시할 수 있습니다. 이는 편집 가능한 스핀박스와 편집 불가능한 스핀박스 모두에 적용되며, 예를 들어 위쪽 및 아래쪽 버튼이나 마우스 휠을 사용하여 값을 늘리거나 줄일 때 이 함수를 사용하여 새 값이 텍스트를 표시하도록 변환됩니다.
콜백 함수 시그니처는 string function(value, locale)
입니다. 이 함수는 하나 또는 두 개의 인수를 가질 수 있으며, 첫 번째 인수는 변환할 값이고 선택적 두 번째 인수는 해당하는 경우 변환에 사용해야 하는 로캘입니다.
기본 구현은 Number.toLocaleString()를 사용하여 변환을 수행합니다:
textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }
참고: 편집 가능한 스핀박스에 사용자 정의 textFromValue
구현을 적용하는 경우 사용자 정의 텍스트를 정수 값으로 다시 변환할 수 있도록 일치하는 valueFromText 구현을 제공해야 합니다.
valueFromText, validator, locale도 참조하세요 .
validator : Validator |
이 속성은 편집 가능한 스핀박스에 대한 입력 텍스트 유효성 검사기를 보유합니다. 기본적으로 SpinBox 은 IntValidator 을 사용하여 정수 숫자 입력을 허용합니다.
SpinBox { id: control validator: IntValidator { locale: control.locale.name bottom: Math.min(control.from, control.to) top: Math.max(control.from, control.to) } }
editable, textFromValue, valueFromText, locale 및 입력 텍스트 유효성검사도 참조하세요 .
value : int |
이 속성은 from
- to
범위의 값을 보유합니다. 기본값은 0
입니다.
valueFromText : function |
이 속성에는 입력 텍스트를 정수 값으로 변환해야 할 때마다 호출되는 콜백 함수가 있습니다.
이 함수는 편집 가능한 스핀박스에 대해 textFromValue 을 재정의할 때만 재정의하면 됩니다.
콜백 함수 시그니처는 int function(text, locale)
입니다. 이 함수에는 하나 또는 두 개의 인수가 있을 수 있으며, 첫 번째 인수는 변환할 텍스트이고 선택적 두 번째 인수는 해당하는 경우 변환에 사용해야 하는 로캘입니다.
기본 구현은 Number.fromLocaleString() 을 사용하여 변환합니다:
valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }
참고: 편집 가능한 스핀박스에 사용자 정의 textFromValue 구현을 적용하는 경우 사용자 정의 텍스트를 정수 값으로 다시 변환할 수 있도록 일치하는 valueFromText
구현을 제공해야 합니다.
textFromValue, validator, locale 를참조하세요 .
wrap : bool |
신호 문서
|
이 신호는 사용자가 터치, 마우스, 휠 또는 키를 사용하여 스핀 박스 값을 대화형으로 수정했을 때 발생합니다. 키보드를 통한 상호작용의 경우 텍스트가 수락된 경우, 즉 엔터 또는 리턴 키를 누르거나 입력 필드가 포커스를 잃었을 때만 신호가 발생합니다.
참고: 해당 핸들러는 onValueModified
입니다.
이 신호는 QtQuick.Controls 2.2(Qt 5.9)에서 도입되었습니다.
메서드 문서
© 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.