QSpinBox Class
QSpinBox 클래스는 스핀 박스 위젯을 제공합니다. 더 보기...
헤더: | #include <QSpinBox> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake: | QT += widgets |
상속합니다: | QAbstractSpinBox |
속성
|
|
공용 기능
QSpinBox(QWidget *parent = nullptr) | |
virtual | ~QSpinBox() |
QString | cleanText() const |
int | displayIntegerBase() const |
int | maximum() const |
int | minimum() const |
QString | prefix() const |
void | setDisplayIntegerBase(int base) |
void | setMaximum(int max) |
void | setMinimum(int min) |
void | setPrefix(const QString &prefix) |
void | setRange(int minimum, int maximum) |
void | setSingleStep(int val) |
void | setStepType(QAbstractSpinBox::StepType stepType) |
void | setSuffix(const QString &suffix) |
int | singleStep() const |
QAbstractSpinBox::StepType | stepType() const |
QString | suffix() const |
int | value() const |
공용 슬롯
void | setValue(int val) |
신호
void | textChanged(const QString &text) |
void | valueChanged(int i) |
보호된 함수
virtual QString | textFromValue(int value) const |
virtual int | valueFromText(const QString &text) const |
재구현된 보호 함수
virtual bool | event(QEvent *event) override |
virtual void | fixup(QString &input) const override |
virtual QValidator::State | validate(QString &text, int &pos) const override |
상세 설명
QSpinBox는 정수 및 불연속형 값 집합(예: 월 이름)을 처리하도록 설계되었으며, 부동 소수점 값은 QDoubleSpinBox 을 사용합니다.
QSpinBox는 사용자가 위/아래 버튼을 클릭하거나 키보드의 위/아래를 눌러 현재 표시된 값을 늘리거나 줄여 값을 선택할 수 있도록 합니다. 사용자가 값을 수동으로 입력할 수도 있습니다. 스핀 상자는 정수 값을 지원하지만 validate(), textFromValue() 및 valueFromText()를 사용하여 다른 문자열을 사용하도록 확장할 수 있습니다.
값이 변경될 때마다 QSpinBox는 valueChanged() 및 textChanged() 신호를 전송하며, 전자는 int를, 후자는 QString 를 제공합니다. textChanged() 신호는 prefix() 및 suffix() 모두와 함께 값을 제공합니다. 현재 값은 value()로 가져오고 setValue()로 설정할 수 있습니다.
위/아래 버튼을 클릭하거나 키보드 가속기의 위/아래 화살표를 사용하면 현재 값이 singleStep() 크기만큼 단계적으로 증가하거나 감소합니다. 이 동작을 변경하려면 가상 함수 stepBy()를 다시 구현하면 됩니다. 최소값과 최대값 및 단계 크기는 생성자 중 하나를 사용하여 설정할 수 있으며 나중에 setMinimum(), setMaximum() 및 setSingleStep()를 사용하여 변경할 수 있습니다.
대부분의 스핀 박스는 방향성이지만 QSpinBox는 원형 스핀 박스로도 작동할 수 있습니다. 즉, 범위가 0-99이고 현재 값이 99인 경우 wrapping()가 true로 설정되어 있으면 "위로"를 클릭하면 0이 됩니다. 순환 동작을 원하면 setWrapping()를 사용합니다.
표시된 값 앞에 통화 또는 측정 단위 등을 나타내는 임의의 문자열을 추가할 수 있습니다. setPrefix () 및 setSuffix()를 참조하세요. 스핀 상자의 텍스트는 text()( prefix() 및 suffix() 포함) 또는 cleanText()( prefix(), suffix() 및 선행 또는 후행 공백이 없음)로 검색됩니다.
숫자 값의 범위 외에 사용자에게 특별한(종종 기본값) 선택권을 주는 것이 바람직할 때가 많습니다. QSpinBox에서 이를 수행하는 방법은 setSpecialValueText()를 참조하세요.
QSpinBox 서브클래스화하기
prefix(), suffix() 및 specialValueText()를 사용하여 충분한 제어 기능을 제공하지 못하는 경우 QSpinBox를 서브클래싱하고 valueFromText() 및 textFromValue()를 다시 구현합니다. 예를 들어 다음은 사용자가 아이콘 크기(예: "32 x 32")를 입력할 수 있는 사용자 지정 스핀 상자에 대한 코드입니다:
int IconSizeSpinBox::valueFromText(const QString &text) const { static const QRegularExpression regExp(tr("(\\d+)(\\s*[xx]\\s*\\d+)?")); Q_ASSERT(regExp.isValid()); const QRegularExpressionMatch match = regExp.match(text); if (match.isValid()) return match.captured(1).toInt(); return 0; } QString IconSizeSpinBox::textFromValue(int value) const { return tr("%1 x %1").arg(value); }
QDoubleSpinBox, QDateTimeEdit, QSlider 및 스핀 박스 예시도참조하세요 .
속성 문서
[read-only]
cleanText : const QString
이 속성은 접두사, 접미사, 선행 또는 후행 공백을 제외한 스핀 상자의 텍스트를 보유합니다.
액세스 함수:
QString | cleanText() const |
text, QSpinBox::prefix, QSpinBox::suffix 를참조하세요 .
displayIntegerBase : int
이 속성에는 스핀 상자의 값을 표시하는 데 사용되는 기준이 저장됩니다.
기본 displayIntegerBase 값은 10입니다.
함수에 액세스합니다:
int | displayIntegerBase() const |
void | setDisplayIntegerBase(int base) |
textFromValue() 및 valueFromText()도 참조하세요 .
maximum : int
이 속성은 스핀 박스의 최대값을 보유합니다.
이 속성을 설정할 때 필요한 경우 최소값을 조정하여 범위가 유효하게 유지되도록 합니다.
기본 최대값은 99입니다.
함수 액세스:
int | maximum() const |
void | setMaximum(int max) |
setRange() 및 specialValueText 을참조하세요 .
minimum : int
이 속성은 스핀 박스의 최소값을 보유합니다.
이 속성을 설정할 때 필요한 경우 범위가 유효한지 확인하기 위해 maximum 이 조정됩니다.
기본 최소값은 0입니다.
함수 액세스:
int | minimum() const |
void | setMinimum(int min) |
setRange() 및 specialValueText 을참조하세요 .
prefix : QString
이 속성은 스핀 박스의 접두사를 보유합니다.
접두사는 표시되는 값의 시작 부분에 앞에 붙습니다. 일반적으로 측정 단위 또는 통화 기호를 표시하는 데 사용됩니다. 예를 들어
sb->setPrefix("$");
접두사 표시를 끄려면 이 속성을 빈 문자열로 설정합니다. 기본값은 접두사 없음입니다. value () == minimum() 및 specialValueText()가 설정되어 있으면 접두사가 표시되지 않습니다.
접두사가 설정되지 않은 경우 prefix()는 빈 문자열을 반환합니다.
함수에 접근합니다:
QString | prefix() const |
void | setPrefix(const QString &prefix) |
suffix(), setSuffix(), specialValueText() 및 setSpecialValueText()도 참조하세요 .
singleStep : int
이 속성은 스텝 값을 보유합니다.
사용자가 화살표를 사용하여 스핀 박스의 값을 변경하면 단일 스텝의 양만큼 값이 증가/감소합니다. 기본값은 1입니다. 단일 스텝 값을 0보다 작게 설정하면 아무 작업도 수행되지 않습니다.
함수에 액세스합니다:
int | singleStep() const |
void | setSingleStep(int val) |
stepType : StepType
이 속성은 스텝 유형을 보유합니다.
단계 유형은 단일 단계 또는 적응형 십진수 단계일 수 있습니다.
함수에 액세스합니다:
QAbstractSpinBox::StepType | stepType() const |
void | setStepType(QAbstractSpinBox::StepType stepType) |
suffix : QString
이 속성은 스핀 상자의 접미사를 보유합니다.
접미사는 표시된 값의 끝에 추가됩니다. 일반적으로 측정 단위 또는 통화 기호를 표시하는 데 사용됩니다. 예를 들어
sb->setSuffix(" km");
접미사 표시를 끄려면 이 속성을 빈 문자열로 설정합니다. 기본값은 접미사 없음입니다. specialValueText ()이 설정되어 있으면 minimum()에 접미사가 표시되지 않습니다.
접미사가 설정되지 않은 경우 suffix()는 빈 문자열을 반환합니다.
함수에 접근합니다:
QString | suffix() const |
void | setSuffix(const QString &suffix) |
prefix(), setPrefix(), specialValueText() 및 setSpecialValueText()도 참조하세요 .
value : int
이 프로퍼티는 스핀 박스의 값을 보유합니다.
새 값이 이전 값과 다른 경우 setValue()는 valueChanged()를 반환합니다. 값 프로퍼티에는 스핀 박스의 접두사와 접미사를 포함하는 두 번째 알림 신호가 있습니다.
함수에 액세스합니다:
int | value() const |
void | setValue(int val) |
노티파이 신호:
void | valueChanged(int i) |
멤버 함수 문서
[explicit]
QSpinBox::QSpinBox(QWidget *parent = nullptr)
최소값이 0, 최대값이 99, 단계 값이 1인 스핀 박스를 구성합니다. 이 값은 처음에 0으로 설정되며 parent 으로 부모가 지정됩니다.
setMinimum(), setMaximum() 및 setSingleStep()도 참조하세요 .
[virtual noexcept]
QSpinBox::~QSpinBox()
파괴자.
[override virtual protected]
bool QSpinBox::event(QEvent *event)
다시 구현합니다: QAbstractSpinBox::event(QEvent * 이벤트).
[override virtual protected]
void QSpinBox::fixup(QString &input) const
재구현합니다: QAbstractSpinBox::fixup(QString &input) const.
void QSpinBox::setRange(int minimum, int maximum)
한 번의 함수 호출로 minimum 및 maximum 값을 설정하는 편의 함수입니다.
setRange(minimum, maximum);
와 동일합니다:
setMinimum(minimum); setMaximum(maximum);
void QSpinBox::setStepType(QAbstractSpinBox::StepType stepType)
스핀 박스의 단계 유형을 단일 단계 또는 적응형 소수점 단계인 stepType 로 설정합니다.
적응형 소수점 단계는 단계 크기가 현재 value 보다 10의 1승 이하로 계속 조정되는 것을 의미합니다. 따라서 값이 1100이면 스텝이 100으로 설정되어 있으므로 한 단계 올리면 1200으로 증가합니다. 1200의 경우 한 번 더 올리면 1300이 됩니다. 음수 값의 경우 -1100에서 스텝다운하면 -1200이 됩니다.
에지 케이스를 처리하기 위해 스텝 방향이 고려되므로 100에서 스텝다운하면 값이 90이 아닌 99가 됩니다. 따라서 스텝 업 다음 스텝 다운 또는 그 반대의 경우 항상 99 -> 100 -> 99의 시작 값에 도달합니다.
이렇게 설정하면 스핀 박스가 singleStep 값을 무시하게 되지만, 나중에 적응형 소수점 단계가 꺼진 경우 singleStep 값이 적용되도록 보존됩니다.
참고: 속성에 대한 설정자 함수 stepType.
stepType()도 참조하세요 .
[signal]
void QSpinBox::textChanged(const QString &text)
이 신호는 스핀 박스의 텍스트가 변경될 때마다 발생합니다. 새 텍스트는 prefix() 및 suffix()와 함께 text 에 전달됩니다.
[virtual protected]
QString QSpinBox::textFromValue(int value) const
이 가상 함수는 주어진 value 을 표시해야 할 때마다 스핀 박스에서 사용됩니다. 기본 구현은 QWidget::locale()을 사용하여 표준 방식으로 인쇄된 value 을 포함하는 문자열을 반환합니다.toString()은 setGroupSeparatorShown()이 설정되어 있지 않으면 천 단위 구분 기호가 제거된 상태로 반환합니다. 재구현하면 아무 것도 반환할 수 있습니다. (자세한 설명의 예시를 참조하세요.)
참고: specialValueText()에 대해서는 QSpinBox 이 함수를 호출하지 않으며 prefix()나 suffix()도 반환 값에 포함되지 않아야 합니다.
이를 다시 구현하는 경우 valueFromText() 및 validate()도 다시 구현해야 할 수 있습니다.
valueFromText(), validate() 및 QLocale::groupSeparator()도 참조하세요 .
[override virtual protected]
QValidator::State QSpinBox::validate(QString &text, int &pos) const
재구현합니다: QAbstractSpinBox::validate(QString &input, int &pos) const.
[signal]
void QSpinBox::valueChanged(int i)
이 신호는 스핀 박스의 값이 변경될 때마다 발생합니다. 새 값의 정수 값은 i 에 전달됩니다.
참고: 속성에 대한 알림 신호 value.
[virtual protected]
int QSpinBox::valueFromText(const QString &text) const
이 가상 함수는 스핀 박스가 사용자가 입력한 text 을 값으로 해석해야 할 때마다 사용됩니다.
숫자가 아닌 방식으로 스핀 박스 값을 표시해야 하는 서브클래스는 이 함수를 다시 구현해야 합니다.
참고: QSpinBox 는 specialValueText()를 별도로 처리하며, 이 함수는 다른 값과만 관련이 있습니다.
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.