이 페이지에서

SpinBox QML Type

사용자가 미리 설정된 값 중에서 선택할 수 있게 합니다. 더 보기...

Import Statement: import QtQuick.Controls
Inherits:

Control

속성

신호

방법

상세 설명

숫자 값과 버튼이 있는 스핀 박스

SpinBox를 사용하면 위쪽 또는 아래쪽 방향 버튼을 클릭하거나 키보드의 위쪽/아래쪽 키를 눌러 정수 값을 선택할 수 있습니다. 선택적으로 SpinBox를 ' editable'로 설정하여 사용자가 입력 필드에 텍스트 값을 입력할 수 있도록 할 수도 있습니다.

기본적으로 SpinBox는 [0-99] 범위의 이산 값을 제공하며, stepSize 는 1 로 설정되어 있습니다.

SpinBox {
    value: 50
}

부동 소수점 값의 경우 DoubleSpinBox 를 사용하십시오.

사용자 정의 값

텍스트 값을 표시하는 스핀 박스

SpinBox는 정수 값을 처리하지만, 임의의 입력 값을 허용하도록 사용자 정의할 수 있습니다. 다음 코드 조각은 validator, textFromValue 및 valueFromText 를 사용하여 기본 동작을 사용자 정의하는 방법을 보여줍니다.

SpinBox {
    id: spinBox
    from: 0
    to: items.length - 1
    value: 1 // "Medium"

    property list<string> 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 {
    id: spinBox
    from: -100
    value: 11
    to: 100
    editable: true
    anchors.centerIn: parent

    property string prefix: "L="
    property string suffix: "m"

    readonly property regexp numberExtractionRegExp: /\D*?(-?\d*\.?\d*)\D*$/

    validator: RegularExpressionValidator { regularExpression: numberExtractionRegExp }

    textFromValue: function(value, locale) {
        return prefix + Number(value).toLocaleString(locale, 'f', 0) + suffix
    }

    valueFromText: function(text, locale) {
        return Number.fromLocaleString(locale, numberExtractionRegExp.exec(text)[1])
    }
}

Tumbler, SpinBox 사용자 정의, Qt Quick Controls 의 포커스 관리, DoubleSpinBox도 참조하십시오 .

속성 문서

displayText : string [read-only, since QtQuick.Controls 2.4 (Qt 5.11)]

이 속성은 스핀박스의 텍스트 값을 저장합니다.

이 속성의 값은 textFromValue 및 locale 을 기반으로 하며, 다음과 같습니다:

var text = spinBox.textFromValue(spinBox.value, spinBox.locale)

이 속성은 QtQuick.Controls 2.4(Qt 5.11)에서 도입되었습니다.

textFromValue도 참조하십시오 .

down group

down.hovered : bool

down.implicitIndicatorHeight : real

down.implicitIndicatorWidth : real

down.indicator : Item

down.pressed : bool

이 그룹화된 속성은 ‘아래쪽’ 표시 항목과 이와 관련된 속성들을 포함합니다.

down.hovered 속성은 QtQuick.Controls 2.1에서 도입되었으며, down.implicitIndicatorWidth 및 down.implicitIndicatorHeight 속성은 QtQuick.Controls 2.5에서 도입되었습니다.

decrease()도 참조하십시오 .

editable : bool

이 속성은 스핀박스가 편집 가능한지 여부를 나타냅니다. 기본값은 ` false`입니다.

validator도 참조하십시오 .

from : int

이 속성은 범위의 시작값을 저장합니다. 기본값은 0 입니다.

to 및 value도 참조하십시오 .

inputMethodComposing : bool [read-only, since QtQuick.Controls 2.2 (Qt 5.9)]

이 속성은 편집 가능한 스핀 박스에 입력 방식으로부터 부분 텍스트가 입력되었는지 여부를 나타냅니다.

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

이 속성은 QtQuick.Controls 2.2(Qt 5.9)에서 도입되었습니다.

inputMethodHints : flags [since QtQuick.Controls 2.2 (Qt 5.9)]

이 속성은 스핀 박스의 예상되는 내용과 작동 방식에 대한 정보를 입력 방식에 제공합니다.

기본값은 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에 적합한 문자만 허용됩니다.

마스크:

  • Qt.ImhExclusiveInputMask - 배타적 플래그 중 하나라도 사용되면 이 마스크는 0이 아닌 값을 반환합니다.

이 속성은 QtQuick.Controls 2.2(Qt 5.9)에서 도입되었습니다.

live : bool [since 6.6]

이 속성은 사용자가 displayText 를 편집할 때 value 가 업데이트되는지 여부를 결정합니다. 기본값은 false 입니다. 이 속성이 true 이고, 사용자가 입력한 값이 유효하며 스핀박스 [from, to]의 범위 내에 있는 경우, SpinBox 의 값이 설정됩니다. 이 속성이 ` false `이거나 사용자가 입력한 값이 경계 범위를 벗어난 경우, Enter 키나 Return 키를 누르거나 입력 필드의 포커스가 해제될 때까지 값이 업데이트되지 않습니다.

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

editable 및 displayText도 참조하십시오 .

stepSize : int

이 속성은 단계 크기를 저장합니다. 기본값은 1 입니다.

increase() 및 decrease()도 참조하십시오 .

textFromValue : function

이 속성은 정수 값을 표시할 텍스트로 변환해야 할 때마다 호출되는 콜백 함수를 포함합니다.

기본 함수를 재정의하여 특정 값에 대해 사용자 정의 텍스트를 표시할 수 있습니다. 이는 편집 가능한 스핀박스와 편집 불가능한 스핀박스 모두에 적용됩니다. 예를 들어, 위/아래 버튼이나 마우스 휠을 사용하여 값을 증가 또는 감소시킬 때, 새로운 값은 이 함수를 통해 표시용 텍스트로 변환됩니다.

콜백 함수의 시그니처는 ` string function(value, locale)`입니다. 이 함수는 하나 또는 두 개의 인자를 가질 수 있으며, 첫 번째 인자는 변환할 값이고, 선택적인 두 번째 인자는 해당되는 경우 변환에 사용해야 할 로케일입니다.

기본 구현은 Number.toLocaleString()을 사용하여 변환을 수행합니다:

textFromValue: function(value, locale) { return Number(value).toLocaleString(locale, 'f', 0); }

참고: 편집 가능한 스핀박스에 사용자 정의 textFromValue 구현을 적용할경우 , 사용자 정의 텍스트를 다시 정수 값으로 변환할 수 있도록 일치하는 valueFromText 구현을 제공해야 합니다.

valueFromText, validator 및 locale도 참조하십시오 .

to : int

이 속성은 범위의 끝값을 저장합니다. 기본값은 99 입니다.

from 및 value도 참조하십시오 .

up group

up.hovered : bool

up.implicitIndicatorHeight : real

up.implicitIndicatorWidth : real

up.indicator : Item

up.pressed : bool

이 그룹화된 속성은 ‘up’ 표시 항목과 관련 속성들을 포함합니다.

up.hovered 속성은 QtQuick.Controls 2.1에서 도입되었으며, up.implicitIndicatorWidth 및 up.implicitIndicatorHeight 속성은 QtQuick.Controls 2.5에서 도입되었습니다.

increase()도 참조하십시오 .

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

이 속성은 입력 텍스트를 정수 값으로 변환해야 할 때마다 호출되는 콜백 함수를 보관합니다.

이 함수는 편집 가능한 스핀박스(spinbox)에 대해 ` textFromValue ` 메서드를 재정의할 때만 재정의하면 됩니다.

콜백 함수의 시그니처는 int function(text, locale) 입니다. 이 함수는 하나 또는 두 개의 인자를 가질 수 있으며, 첫 번째 인자는 변환할 텍스트이고, 선택적인 두 번째 인자는 해당되는 경우 변환에 사용해야 할 로케일입니다.

기본 구현은 ` Number.fromLocaleString()`를 사용하여 변환을 수행합니다:

valueFromText: function(text, locale) { return Number.fromLocaleString(locale, text); }

참고: 편집 가능한 스핀박스에 사용자 정의 textFromValue 구현을 적용할경우 , 사용자 정의 텍스트를 다시 정수 값으로 변환할 수 있도록 일치하는 valueFromText 구현을 제공해야 합니다.

textFromValue, validator 및 locale도 참조하십시오 .

wrap : bool [since QtQuick.Controls 2.3 (Qt 5.10)]

이 속성은 스핀박스가 줄바꿈을 하는지 여부를 지정합니다. 기본값은 ‘ false ’입니다.

wrap이 true 인 경우, to 을 넘어가면 값이 from 으로 변경되며, 그 반대의 경우도 마찬가지입니다.

이 속성은 QtQuick.Controls 2.3(Qt 5.10)에서 도입되었습니다.

신호 문서

[since QtQuick.Controls 2.2 (Qt 5.9)] valueModified()

이 신호는 사용자가 터치, 마우스, 휠 또는 키를 통해 스핀 박스의 값을 직접 수정했을 때 발생합니다. 키보드를 통한 상호작용의 경우, 텍스트가 확정되었을 때만 신호가 발생합니다. 즉, Enter 키나 Return 키를 누르거나 입력 필드의 포커스가 해제되었을 때를 의미합니다.

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

이 신호는 QtQuick.Controls 2.2(Qt 5.9)에서 도입되었습니다.

메서드 문서

void decrease()

값을 ` stepSize`만큼 감소시키며, ` stepSize `가 정의되지 않은 경우에는 ` 1 `만큼 감소시킵니다.

stepSize도 참조하십시오 .

void increase()

값을 ` stepSize`만큼 증가시키며, ` stepSize `가 정의되지 않은 경우에는 ` 1 `만큼 증가시킵니다.

stepSize도 참조하십시오 .

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