이 페이지에서

QDoubleSpinBox Class

QDoubleSpinBox 클래스는 double 형식의 값을 받는 스핀 박스 위젯을 제공합니다. 더 보기...

헤더: #include <QDoubleSpinBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속: QAbstractSpinBox

속성

공개 함수

QDoubleSpinBox(QWidget *parent = nullptr)
virtual ~QDoubleSpinBox()
QString cleanText() const
int decimals() const
double maximum() const
double minimum() const
QString prefix() const
void setDecimals(int prec)
void setMaximum(double max)
void setMinimum(double min)
void setPrefix(const QString &prefix)
void setRange(double minimum, double maximum)
void setSingleStep(double val)
void setStepType(QAbstractSpinBox::StepType stepType)
void setSuffix(const QString &suffix)
double singleStep() const
QAbstractSpinBox::StepType stepType() const
QString suffix() const
virtual QString textFromValue(double value) const
double value() const
virtual double valueFromText(const QString &text) const

재구현된 공용 함수

virtual void fixup(QString &input) const override
virtual QValidator::State validate(QString &text, int &pos) const override

공개 슬롯

void setValue(double val)

신호

void textChanged(const QString &text)
void valueChanged(double d)

상세 설명

더블이 표시된 스핀 박스

QDoubleSpinBox를 사용하면 사용자가 위쪽 및 아래쪽 버튼을 클릭하거나 키보드의 위쪽(Up) 또는 아래쪽(Down) 키를 눌러 현재 표시된 값을 늘리거나 줄임으로써 값을 선택할 수 있습니다. 또한 사용자는 값을 직접 입력할 수도 있습니다. 이 스핀 박스는 double 형식의 값을 지원하지만, validate(), textFromValue() 및 valueFromText()을 사용하여 다른 문자열을 사용하도록 확장할 수 있습니다.

값이 변경될 때마다 QDoubleSpinBox는 valueChanged() 및 textChanged() 신호를 발생시키며, 전자는 double 값을, 후자는 QString 값을 제공합니다. textChanged() 신호는 prefix() 및 suffix() 값을 모두 제공합니다. 현재 값은 value()를 통해 가져올 수 있으며, setValue()를 통해 설정할 수 있습니다.

참고: QDoubleSpinBox는 현재 정밀도에 맞춰 숫자를 반올림하여 표시합니다. 소수 자릿수가 2로 설정된 QDoubleSpinBox에서 setValue(2.555)를 호출하면 value()가 2.56을 반환합니다.

위쪽 및 아래쪽 버튼을 클릭하거나 키보드 단축키의 위쪽 및 아래쪽 화살표를 사용하면 singleStep()로 지정된 단계 크기에 따라 현재 값이 증가하거나 감소합니다. 이 동작을 변경하려면 가상 함수 stepBy()을 재정의하면 됩니다. 최소값, 최대값 및 단계 크기는 생성자 중 하나를 사용하여 설정할 수 있으며, 나중에 setMinimum(), setMaximum() 및 setSingleStep()을 통해 변경할 수 있습니다. 스핀박스의 기본 소수점 자릿수는 2자리이지만, setDecimals()을 사용하여 변경할 수 있습니다.

대부분의 스핀박스는 방향성이 있지만, QDoubleSpinBox는 순환형 스핀박스로도 작동할 수 있습니다. 즉, 범위가 0.0~99.9이고 현재 값이 99.9인 경우, wrapping()가 true로 설정되어 있다면 “위”를 클릭하면 0이 출력됩니다. 순환 동작을 원한다면 setWrapping()을 사용하십시오.

표시된 값의 앞이나 뒤에 통화나 측정 단위 등을 나타내는 임의의 문자열을 추가할 수 있습니다. setPrefix() 및 setSuffix()을 참조하십시오. 스핀 박스의 텍스트는 text() ( prefix() 및 suffix() 포함) 또는 cleanText() ( prefix(), suffix() 및 앞뒤 공백 없음)을 사용하여 가져올 수 있습니다.

숫자 값의 범위 외에도 사용자에게 특별한(대개 기본값인) 선택지를 제공하는 것이 바람직한 경우가 많습니다. QDoubleSpinBox에서 이를 구현하는 방법은 setSpecialValueText()을 참조하십시오.

참고: QDoubleSpinBox의 표시값은 앞뒤에 추가될 수 있는 접두사 및 접미사 내용을 제외하고 18자 이내로 제한됩니다. 이 제한은 매우 큰 값을 다룰 때도 더블 스핀박스를 정상적으로 사용할 수 있도록 하기 위한 것입니다.

QSpinBox, QDateTimeEdit, QSlider 및 ‘스핀 박스 예제’도 참조하십시오 .

속성 설명서

[read-only] cleanText : QString

이 속성은 접두사, 접미사, 또는 앞뒤의 공백을 제외한 스핀 박스의 텍스트를 포함합니다.

액세스 함수:

QString cleanText() const

text, QDoubleSpinBox::prefix, QDoubleSpinBox::suffix도 참조하십시오 .

decimals : int

이 속성은 스핀 박스의 정밀도(소수점 자리 수)를 소수점 자리 수로 지정합니다.

스핀 박스가 double 형식의 숫자를 표시하고 해석할 때 사용할 소수점 자릿수를 설정합니다.

경고: double 유형의 제한 사항으로 인해 ` decimals `의 최대값은 `DBL_MAX_10_EXP + DBL_DIG`(즉, 323)입니다.

참고: 이 속성을 변경하면 최대값, 최소값 및 값이 변경될 수 있습니다.

액세스 함수:

int decimals() const
void setDecimals(int prec)

maximum : double

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

이 속성을 설정할 때, 범위가 유효한 상태를 유지하도록 필요에 따라 ' minimum '가 조정됩니다.

기본 최대값은 99.99입니다.

참고: 최대값은 소수점 속성에 맞춰 반올림됩니다.

액세스 함수:

double maximum() const
void setMaximum(double max)

decimals 및 setRange()도 참조하십시오 .

minimum : double

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

이 속성을 설정할 때, 범위 maximum 가 유효한 상태를 유지하도록 필요한 경우 조정됩니다.

기본 최소값은 0.0입니다.

참고: 최소값은 소수점 속성에 맞게 반올림됩니다.

액세스 함수:

double minimum() const
void setMinimum(double min)

관련 항목: decimals, setRange(), specialValueText.

prefix : QString

이 속성은 스핀 박스의 접두사를 지정합니다.

접두사는 표시된 값의 맨 앞에 추가됩니다. 주로 측정 단위나 통화 기호를 표시하는 데 사용됩니다. 예:

spinbox->setPrefix("$");

접두사 표시를 비활성화하려면 이 속성을 빈 문자열로 설정하십시오. 기본값은 접두사 없음입니다. value() == minimum()이고 specialValueText()가 설정된 경우 접두사는 표시되지 않습니다.

접두사가 설정되지 않은 경우, prefix()는 빈 문자열을 반환합니다.

액세스 함수:

QString prefix() const
void setPrefix(const QString &prefix)

suffix(), setSuffix(), specialValueText(), setSpecialValueText()도 참조하십시오 .

singleStep : double

이 속성은 단계 값을 저장합니다.

사용자가 화살표 키를 사용하여 스핀 박스의 값을 변경할 때, 값은 singleStep 값만큼 증가하거나 감소합니다. 기본값은 1.0입니다. singleStep 값을 0 미만으로 설정해도 아무런 효과가 없습니다.

액세스 함수:

double singleStep() const
void setSingleStep(double val)

stepType : StepType

이 속성은 단계 유형을 나타냅니다.

단계 유형은 단일 단계 또는 적응형 소수점 단계일 수 있습니다.

액세스 함수:

QAbstractSpinBox::StepType stepType() const
void setStepType(QAbstractSpinBox::StepType stepType)

suffix : QString

이 속성은 스핀 박스의 접미사를 저장합니다.

접미사는 표시된 값의 끝에 추가됩니다. 주로 측정 단위나 통화 기호를 표시하는 데 사용됩니다. 예:

spinbox->setSuffix(" km");

접미사 표시를 비활성화하려면 이 속성을 빈 문자열로 설정하십시오. 기본값은 접미사 없음입니다. specialValueText()가 설정된 경우, minimum()에서는 접미사가 표시되지 않습니다.

접미사가 설정되지 않은 경우, suffix()는 빈 문자열을 반환합니다.

관련 함수:

QString suffix() const
void setSuffix(const QString &suffix)

prefix(), setPrefix(), specialValueText() 및 setSpecialValueText()도 참조하십시오 .

value : double

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

setValue()는 새 값이 기존 값과 다를 경우 ` valueChanged()`를 발신합니다. value 속성에는 스핀 박스의 접두사와 접미사가 포함된 두 번째 알림 신호가 있습니다.

참고: 값은 소수점 자리 수 설정에 따라 표시될 수 있도록 반올림됩니다.

액세스 함수:

double value() const
void setValue(double val)

알림 신호:

void valueChanged(double d)

decimals도 참조하십시오 .

멤버 함수 문서

[explicit] QDoubleSpinBox::QDoubleSpinBox(QWidget *parent = nullptr)

최소값 0.0, 최대값 99.99, 단계값 1.0, 소수점 이하 2자리 정밀도를 가진 스핀 박스를 생성합니다. 값은 처음에 0.00으로 설정됩니다. 이 스핀 박스는 지정된 parent 를 갖습니다.

setMinimum(), setMaximum() 및 setSingleStep()도 참조하십시오 .

[virtual noexcept] QDoubleSpinBox::~QDoubleSpinBox()

소멸자.

[override virtual] void QDoubleSpinBox::fixup(QString &input) const

QAbstractSpinBox::fixup(QString &input) const를 재구현합니다.

void QDoubleSpinBox::setRange(double minimum, double maximum)

minimum 와 maximum 값을 단 한 번의 함수 호출로 설정할 수 있는 편리한 함수입니다.

참고: 최대값과 최소값은 decimals 속성에 맞춰 반올림됩니다.

setRange(minimum, maximum);

다음과 동일합니다:

setMinimum(minimum);
setMaximum(maximum);

minimum 및 maximum항목도 참조하십시오 .

void QDoubleSpinBox::setStepType(QAbstractSpinBox::StepType stepType)

스핀 박스의 단계 유형을 ‘ stepType ’로 설정합니다. 이는 단일 단계 또는 적응형 소수점 단계입니다.

적응형 소수점 단계란 단계 크기가 현재 value 보다 10의 1차수만큼 작은 값으로 지속적으로 조정됨을 의미합니다. 따라서 값이 1100일 때 단계는 100으로 설정되므로, 한 단계 올릴 때마다 1200으로 증가합니다. 1200일 때는 한 단계 올리면 1300이 됩니다. 음수 값의 경우, -1100에서 한 단계 내리면 -1200이 됩니다.

소수값에도 동일하게 적용되며, 0.041은 한 단계 증가할 때마다 0.042로 증가합니다.

경계 상황을 처리하기 위해 단계 방향이 고려되므로, 100에서 단계를 내리면 값이 90이 아닌 99가 됩니다. 따라서 한 단계 올린 후 한 단계 내리거나 그 반대의 경우라도 항상 시작 값으로 돌아옵니다(예: 99 -> 100 -> 99).

이 설정을 적용하면 스핀 박스가 ` singleStep` 속성의 값을 무시하게 되지만, 해당 값은 보존되므로 나중에 적응형 소수점 단계 기능이 비활성화될 경우 ` singleStep `가 적용됩니다.

참고: stepType 속성에 대한세터 함수입니다.

stepType()도 참조하십시오 .

[signal] void QDoubleSpinBox::textChanged(const QString &text)

이 신호는 스핀 박스의 텍스트가 변경될 때마다 발생합니다. 새로운 텍스트는 ` prefix()` 및 ` suffix()`를 통해 ` text `로 전달됩니다.

[virtual] QString QDoubleSpinBox::textFromValue(double value) const

이 가상 함수는 스핀 박스가 주어진 value 을 표시해야 할 때마다 사용됩니다. 기본 구현은 QWidget::locale()을 사용하여 출력된 value 을 포함하는 문자열을 반환합니다.toString(value, u'f', decimals())이며, setGroupSeparatorShown()이 설정되지 않은 경우 천 단위 구분자를 제거합니다. 재구현된 함수는 임의의 값을 반환할 수 있습니다.

참고: QDoubleSpinBox 는 specialValueText()에 대해서는 이 함수를 호출하지 않으며, prefix()이나 suffix()는 반환 값에 포함되어서는 안 됩니다.

이 함수를 재구현하는 경우, valueFromText()도 재구현해야 할 수 있습니다.

valueFromText() 및 QLocale::groupSeparator()도 참조하십시오 .

[override virtual] QValidator::State QDoubleSpinBox::validate(QString &text, int &pos) const

QAbstractSpinBox::validate(QString &input, int &pos) const를 재구현합니다.

[signal] void QDoubleSpinBox::valueChanged(double d)

이 신호는 스핀 박스의 값이 변경될 때마다 발생합니다. 새로운 값은 ` d`에 전달됩니다.

참고: value 속성에 대한Notifier 신호입니다.

[virtual] double QDoubleSpinBox::valueFromText(const QString &text) const

이 가상 함수는 스핀 박스가 사용자가 입력한 text 을 값으로 해석해야 할 때마다 사용됩니다.

스핀 박스의 값을 숫자가 아닌 방식으로 표시해야 하는 하위 클래스는 이 함수를 재구현해야 합니다.

참고: QDoubleSpinBox 는 specialValueText()를 별도로 처리하며, 이 함수는 그 외의 값들만 다룹니다.

textFromValue() 및 validate()도 참조하십시오 .

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