QDoubleSpinBox Class

QDoubleSpinBox 클래스는 두 배로 회전하는 스핀 박스 위젯을 제공합니다. 더 보기...

Header: #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)

상세 설명

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

값이 변경될 때마다 QDoubleSpinBox는 valueChanged() 및 textChanged() 신호를 보내며, 전자는 더블을 제공하고 후자는 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()가 참으로 설정되어 있으면 "위로"를 클릭하면 0이 됩니다. 순환 동작을 원하면 setWrapping()를 사용합니다.

표시된 값 앞에 통화 또는 측정 단위 등을 나타내는 임의의 문자열을 추가할 수 있습니다. setPrefix () 및 setSuffix()를 참조하세요. 스핀 상자의 텍스트는 text()( prefix() 및 suffix() 포함) 또는 cleanText()( prefix(), suffix() 및 선행 또는 후행 공백이 없음)로 검색됩니다.

숫자 값의 범위 외에 사용자에게 특별한(종종 기본값) 선택권을 주는 것이 바람직할 때가 많습니다. QDoubleSpinBox를 사용하여 이 작업을 수행하는 방법은 setSpecialValueText()를 참조하세요.

참고: QDoubleSpinBox의 표시 값은 최종 접두사 및 접미사 내용을 포함하여 18자로 제한됩니다. 이 제한은 매우 큰 값에서도 이중 스핀 상자를 사용할 수 있도록 하기 위해 사용됩니다.

QSpinBox, QDateTimeEdit, QSlider, 스핀 박스 예시도참조하세요 .

속성 문서

[read-only] cleanText : const QString

이 속성은 접두사, 접미사, 선행 또는 후행 공백을 제외한 스핀 상자의 텍스트를 보유합니다.

액세스 함수:

QString cleanText() const

text, QDoubleSpinBox::prefix, QDoubleSpinBox::suffix참조하세요 .

decimals : int

이 프로퍼티는 스핀박스의 정밀도를 소수점 단위로 유지합니다.

스핀박스가 복수를 표시하고 해석하는 데 사용할 소수점 이하 자릿수를 설정합니다.

경고: 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)

decimalssetRange()도 참조하세요 .

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

이 속성은 스텝 값을 보유합니다.

사용자가 화살표를 사용하여 스핀 박스의 값을 변경하면 단일 스텝의 양만큼 값이 증가/감소합니다. 기본값은 1.0입니다. 단일 스텝 값을 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()를 반환합니다. 값 프로퍼티에는 스핀 박스의 접두사와 접미사를 포함하는 두 번째 알림 신호가 있습니다.

참고: 값은 현재 소수점 설정으로 표시될 수 있도록 반올림됩니다.

함수에 액세스합니다:

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)

편의 함수를 사용하면 한 번의 함수 호출로 minimummaximum 값을 설정할 수 있습니다.

참고: 최대값과 최소값은 소수점 속성과 일치하도록 반올림됩니다.

setRange(minimum, maximum);

와 동일합니다:

setMinimum(minimum);
setMaximum(maximum);

minimummaximum참조하세요 .

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()를 설정하지 않으면 천 단위 구분 기호를 제거합니다. 재구현하면 아무 것도 반환할 수 있습니다.

참고: specialValueText()에 대해서는 QDoubleSpinBox 이 함수를 호출하지 않으며 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.

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

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

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

참고: QDoubleSpinBoxspecialValueText()를 별도로 처리하며, 이 함수는 다른 값과만 관련이 있습니다.

textFromValue() 및 validate()도 참조하세요 .

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