QAbstractSpinBox Class

QAbstractSpinBox 클래스는 값을 표시하기 위한 스핀박스와 줄 편집 기능을 제공합니다. 더 보기...

Header: #include <QAbstractSpinBox>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
상속합니다: QWidget
상속받습니다:

QDateTimeEdit, QDoubleSpinBox, 그리고 QSpinBox

공용 유형

enum ButtonSymbols { UpDownArrows, PlusMinus, NoButtons }
enum CorrectionMode { CorrectToPreviousValue, CorrectToNearestValue }
flags StepEnabled
enum StepEnabledFlag { StepNone, StepUpEnabled, StepDownEnabled }
enum StepType { DefaultStepType, AdaptiveDecimalStepType }

속성

공용 함수

QAbstractSpinBox(QWidget *parent = nullptr)
virtual ~QAbstractSpinBox()
Qt::Alignment alignment() const
QAbstractSpinBox::ButtonSymbols buttonSymbols() const
QAbstractSpinBox::CorrectionMode correctionMode() const
virtual void fixup(QString &input) const
bool hasAcceptableInput() const
bool hasFrame() const
void interpretText()
bool isAccelerated() const
bool isGroupSeparatorShown() const
bool isReadOnly() const
bool keyboardTracking() const
void setAccelerated(bool on)
void setAlignment(Qt::Alignment flag)
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)
void setFrame(bool)
void setGroupSeparatorShown(bool shown)
void setKeyboardTracking(bool kt)
void setReadOnly(bool r)
void setSpecialValueText(const QString &txt)
void setWrapping(bool w)
QString specialValueText() const
virtual void stepBy(int steps)
QString text() const
virtual QValidator::State validate(QString &input, int &pos) const
bool wrapping() const

재구현된 공용 함수

virtual bool event(QEvent *event) override
virtual QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

공용 슬롯

virtual void clear()
void selectAll()
void stepDown()
void stepUp()

신호

보호된 함수

virtual void initStyleOption(QStyleOptionSpinBox *option) const
QLineEdit *lineEdit() const
void setLineEdit(QLineEdit *lineEdit)
virtual QAbstractSpinBox::StepEnabled stepEnabled() const

재구현된 보호 함수

virtual void changeEvent(QEvent *event) override
virtual void closeEvent(QCloseEvent *event) override
virtual void contextMenuEvent(QContextMenuEvent *event) override
virtual void focusInEvent(QFocusEvent *event) override
virtual void focusOutEvent(QFocusEvent *event) override
virtual void hideEvent(QHideEvent *event) override
virtual void keyPressEvent(QKeyEvent *event) override
virtual void keyReleaseEvent(QKeyEvent *event) override
virtual void mouseMoveEvent(QMouseEvent *event) override
virtual void mousePressEvent(QMouseEvent *event) override
virtual void mouseReleaseEvent(QMouseEvent *event) override
virtual void paintEvent(QPaintEvent *event) override
virtual void resizeEvent(QResizeEvent *event) override
virtual void showEvent(QShowEvent *event) override
virtual void timerEvent(QTimerEvent *event) override
virtual void wheelEvent(QWheelEvent *event) override

상세 설명

이 클래스는 QSpinBox, QDoubleSpinBox 과 같은 위젯의 공통 슈퍼클래스로 설계되었습니다. QDateTimeEdit

클래스의 주요 프로퍼티는 다음과 같습니다:

  1. text: QAbstractSpinBox에 표시되는 텍스트입니다.
  2. 정렬: QAbstractSpinBox에 표시되는 텍스트의 정렬입니다.
  3. wrapping: 최소값에서 최대값으로 또는 그 반대로 QAbstractSpinBox가 래핑되는지 여부.

QAbstractSpinBox는 사용자가 단계를 트리거할 때마다 호출되는 가상 stepBy() 함수를 제공합니다. 이 함수는 정수 값을 받아 얼마나 많은 단계를 수행했는지를 나타냅니다. 예를 들어 Qt::Key_Down 을 누르면 stepBy(-1) 호출이 트리거됩니다.

사용자가 Qt::ControlModifier 를 누른 상태에서 스텝을 트리거하면 QAbstractSpinBox는 한 단계가 아닌 10단계씩 스텝을 수행합니다. 이 단계 수정자는 휠 이벤트, 키 이벤트 및 스핀박스 버튼과의 상호 작용에 영향을 줍니다. macOS에서 Control은 Command 키에 해당합니다.

Qt 5.12부터는 QStyle::SH_SpinBox_StepModifier 을 사용하여 Qt::KeyboardModifier 단계 속도를 증가시킬 수 있습니다. Qt::NoModifier 은 이 기능을 비활성화합니다.

QAbstractSpinBox는 또한 가상 함수 stepEnabled()를 제공하여 어느 시점에서 스텝 업/다운이 허용되는지 여부를 결정할 수 있습니다. 이 함수는 StepEnabled 의 비트셋을 반환합니다.

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

멤버 유형 문서

enum QAbstractSpinBox::ButtonSymbols

이 열거형 유형은 회전 상자의 버튼에 표시할 수 있는 기호를 설명합니다.

상수설명
QAbstractSpinBox::UpDownArrows0클래식 스타일의 작은 화살표.
QAbstractSpinBox::PlusMinus1+ 및 - 기호.
QAbstractSpinBox::NoButtons2버튼을 표시하지 않습니다.

QAbstractSpinBox::buttonSymbols참조하세요 .

enum QAbstractSpinBox::CorrectionMode

이 열거형 유형은 편집이 완료된 경우 스핀박스가 Intermediate 값을 수정하는 데 사용할 모드를 설명합니다.

Constant설명
QAbstractSpinBox::CorrectToPreviousValue0스핀박스가 마지막으로 유효한 값으로 되돌립니다.
QAbstractSpinBox::CorrectToNearestValue1스핀박스가 가장 가까운 유효한 값으로 되돌아갑니다.

correctionMode참조하세요 .

열거형 QAbstractSpinBox::StepEnabledFlag
플래그 QAbstractSpinBox::StepEnabled

Constant
QAbstractSpinBox::StepNone0x00
QAbstractSpinBox::StepUpEnabled0x01
QAbstractSpinBox::StepDownEnabled0x02

StepEnabled 유형은 QFlags<StepEnabledFlag>에 대한 typedef입니다. StepEnabledFlag 값의 OR 조합을 저장합니다.

enum QAbstractSpinBox::StepType

상수Value
QAbstractSpinBox::DefaultStepType0
QAbstractSpinBox::AdaptiveDecimalStepType1

속성 문서

accelerated : bool

이 속성은 스텝 업/다운 버튼을 누를 때 스핀 박스가 스텝의 빈도를 가속화할지 여부를 설정합니다.

활성화하면 버튼을 길게 누를수록 스핀 박스의 값이 더 빠르게 증가/감소합니다.

기능에 액세스합니다:

bool isAccelerated() const
void setAccelerated(bool on)

[read-only] acceptableInput : const bool

이 속성은 입력이 현재 유효성 검사를 충족하는지 여부를 보유합니다.

액세스 함수를 충족하는지 여부를 저장합니다:

bool hasAcceptableInput() const

validate(), fixup() 및 correctionMode참조하세요 .

alignment : Qt::Alignment

이 프로퍼티는 스핀 박스의 정렬을 유지합니다.

가능한 값은 Qt::AlignLeft, Qt::AlignRight, Qt::AlignHCenter 입니다.

기본적으로 정렬은 다음과 같습니다. Qt::AlignLeft

잘못된 플래그 조합으로 정렬을 설정하려고 시도하면 아무 효과가 없습니다.

기능에 액세스합니다:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment flag)

Qt::Alignment참조하세요 .

buttonSymbols : ButtonSymbols

이 속성은 현재 버튼 심볼 모드를 유지합니다.

사용 가능한 값은 UpDownArrows 또는 PlusMinus 입니다. 기본값은 UpDownArrows 입니다.

일부 스타일은 PlusMinusUpDownArrows 을 동일하게 렌더링할 수 있습니다.

액세스 함수:

QAbstractSpinBox::ButtonSymbols buttonSymbols() const
void setButtonSymbols(QAbstractSpinBox::ButtonSymbols bs)

ButtonSymbols참조하세요 .

correctionMode : CorrectionMode

이 속성은 편집이 완료된 경우 Intermediate 값을 수정하는 모드를 보유합니다.

기본 모드는 QAbstractSpinBox::CorrectToPreviousValue 입니다.

함수 액세스:

QAbstractSpinBox::CorrectionMode correctionMode() const
void setCorrectionMode(QAbstractSpinBox::CorrectionMode cm)

acceptableInput, validate() 및 fixup()도 참조하세요 .

frame : bool

이 속성은 스핀 상자가 프레임과 함께 자체적으로 그려지는지 여부를 나타냅니다.

활성화하면(기본값) 스핀 상자가 프레임 안에 그려지고, 그렇지 않으면 프레임 없이 스핀 상자가 자체적으로 그려집니다.

함수 액세스:

bool hasFrame() const
void setFrame(bool)

keyboardTracking : bool

이 속성은 스핀박스의 키보드 추적 활성화 여부를 보유합니다.

키보드 추적이 활성화된 경우(기본값), 스핀박스는 키보드에서 새 값을 입력하는 동안 valueChanged() 및 textChanged() 신호를 발산합니다.

예를 들어 사용자가 6, 0, 0을 입력하여 600이라는 값을 입력하면 스핀박스는 각각 6, 60, 600이라는 값으로 3개의 신호를 발산합니다.

키보드 추적이 비활성화되어 있으면 입력하는 동안 스핀박스는 valueChanged() 및 textChanged() 신호를 내보내지 않습니다. 나중에 리턴 키를 누르거나 키보드 포커스를 잃었을 때 또는 화살표 키를 누르는 등 다른 스핀박스 기능을 사용할 때 신호를 보냅니다.

액세스 기능:

bool keyboardTracking() const
void setKeyboardTracking(bool kt)

readOnly : bool

이 속성은 회전 상자가 읽기 전용인지 여부를 나타냅니다.

읽기 전용 모드에서는 사용자가 텍스트를 클립보드에 복사하거나 텍스트를 끌어서 놓을 수는 있지만 편집할 수는 없습니다.

QAbstractSpinBoxQLineEdit 은 읽기 전용 모드에서 커서가 표시되지 않습니다.

기능에 접근합니다:

bool isReadOnly() const
void setReadOnly(bool r)

QLineEdit::readOnly참조하세요 .

showGroupSeparator : bool

이 속성은 천 단위 구분 기호 사용 여부를 저장합니다. 기본적으로 이 속성은 false입니다.

함수 액세스:

bool isGroupSeparatorShown() const
void setGroupSeparatorShown(bool shown)

specialValueText : QString

이 프로퍼티에는 특수 값 텍스트가 저장됩니다.

설정하면 현재 값이 최소값()과 같을 때마다 스핀 상자에 숫자 값 대신 이 텍스트가 표시됩니다. 일반적으로 이 선택 항목에 특별한(기본값) 의미가 있음을 나타내는 데 사용됩니다.

예를 들어 스핀 상자를 통해 사용자가 이미지를 표시할 배율(또는 확대/축소 수준)을 선택할 수 있고 애플리케이션이 이미지를 표시 창에 완전히 맞출 수 있는 배율을 자동으로 선택할 수 있는 경우 스핀 상자를 다음과 같이 설정할 수 있습니다:

    QSpinBox *zoomSpinBox = new QSpinBox;
    zoomSpinBox->setRange(0, 1000);
    zoomSpinBox->setSingleStep(10);
    zoomSpinBox->setSuffix("%");
    zoomSpinBox->setSpecialValueText(tr("Automatic"));
    zoomSpinBox->setValue(100);

그러면 사용자는 1%에서 1000% 사이의 배율을 선택하거나 '자동'을 선택하여 애플리케이션이 선택하도록 맡길 수 있습니다. 그러면 코드는 스핀 박스 값 0을 창 안에 맞게 이미지 크기를 조정하라는 사용자의 요청으로 해석해야 합니다.

특수 값 텍스트만 표시되는 특수 값을 제외한 모든 값은 접두사 및 접미사(설정된 경우)와 함께 표시됩니다. 이 특수 텍스트는 QString 을 전달하는 QSpinBox::textChanged() 신호로 전달됩니다.

특수 값 텍스트 표시를 끄려면 빈 문자열로 이 함수를 호출합니다. 기본값은 특수 값 텍스트 없음, 즉 숫자 값이 평소와 같이 표시됩니다.

특수 값 텍스트를 설정하지 않으면 specialValueText()는 빈 문자열을 반환합니다.

함수에 액세스합니다:

QString specialValueText() const
void setSpecialValueText(const QString &txt)

[read-only] text : const QString

이 속성에는 접두사와 접미사를 포함한 스핀 상자의 텍스트가 저장됩니다.

기본 텍스트는 없습니다.

액세스 함수:

QString text() const

wrapping : bool

이 속성은 스핀 박스가 원형인지 여부를 보유합니다.

래핑이 참이면 최대() 값에서 한 단계씩 올라가면 최소() 값으로 이동하며, 그 반대의 경우도 마찬가지입니다. 래핑은 최소() 및 최대() 값이 설정되어 있는 경우에만 의미가 있습니다.

QSpinBox *spinBox = new QSpinBox(this);
spinBox->setRange(0, 100);
spinBox->setWrapping(true);
spinBox->setValue(100);
spinBox->stepBy(1);
// value is 0

함수에 액세스합니다:

bool wrapping() const
void setWrapping(bool w)

QSpinBox::minimum() 및 QSpinBox::maximum()도 참조하세요 .

멤버 함수 문서

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

기본값 wrapping정렬 속성이 지정된 parent 으로 추상 스핀박스를 구성합니다.

[virtual noexcept] QAbstractSpinBox::~QAbstractSpinBox()

QAbstractSpinBox 이 파괴될 때 호출됩니다.

[override virtual protected] void QAbstractSpinBox::changeEvent(QEvent *event)

다시 구현합니다: QWidget::changeEvent(QEvent * 이벤트).

[virtual slot] void QAbstractSpinBox::clear()

접두사와 접미사를 제외한 모든 텍스트의 줄 바꿈 편집을 지웁니다.

[override virtual protected] void QAbstractSpinBox::closeEvent(QCloseEvent *event)

다시 구현합니다: QWidget::closeEvent(QCloseEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event)

다시 구현합니다: QWidget::contextMenuEvent(QContextMenuEvent * 이벤트).

[signal] void QAbstractSpinBox::editingFinished()

이 신호는 편집이 완료되면 발산됩니다. 이 신호는 스핀박스가 초점을 잃고 Enter 키를 눌렀을 때 발생합니다.

[override virtual] bool QAbstractSpinBox::event(QEvent *event)

다시 구현합니다: QWidget::event(QEvent * 이벤트).

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

이 가상 함수는 Return을 누르거나 interpretText()을 호출했을 때 inputQValidator::Acceptable 로 유효하지 않은 경우 QAbstractSpinBox 에 의해 호출됩니다. 유효하도록 텍스트를 변경하려고 시도합니다. 다양한 서브클래스에서 재구현되었습니다.

[override virtual protected] void QAbstractSpinBox::focusInEvent(QFocusEvent *event)

다시 구현합니다: QWidget::focusInEvent(QFocusEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::focusOutEvent(QFocusEvent *event)

다시 구현합니다: QWidget::focusOutEvent(QFocusEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::hideEvent(QHideEvent *event)

다시 구현합니다: QWidget::hideEvent(QHideEvent * 이벤트).

[virtual protected] void QAbstractSpinBox::initStyleOption(QStyleOptionSpinBox *option) const

QSpinBox 의 값으로 option 을 초기화합니다. 이 메서드는 하위 클래스에 QStyleOptionSpinBox 이 필요하지만 모든 정보를 직접 채우고 싶지 않을 때 유용합니다.

QStyleOption::initFrom()도 참조하세요 .

[override virtual] QVariant QAbstractSpinBox::inputMethodQuery(Qt::InputMethodQuery query) const

재구현합니다: QWidget::inputMethodQuery(Qt::InputMethodQuery 쿼리) const.

void QAbstractSpinBox::interpretText()

이 함수는 스핀 박스의 텍스트를 해석합니다. 마지막 해석 이후 값이 변경된 경우 신호를 보냅니다.

[override virtual protected] void QAbstractSpinBox::keyPressEvent(QKeyEvent *event)

다시 구현합니다: QWidget::keyPressEvent(QKeyEvent * 이벤트).

이 함수는 키보드 입력을 처리합니다.

구체적으로 처리되는 키는 다음과 같습니다:

엔터/리턴마지막으로 신호를 보낸 이후 값이 변경되지 않았더라도 텍스트를 재해석하여 신호를 보냅니다.
UpstepBy(1)을 호출합니다.
DownstepBy(-1)을 호출합니다.
페이지 위로stepBy(10)
페이지 아래로stepBy(-10)을 호출합니다.

stepBy()도 참조하세요 .

[override virtual protected] void QAbstractSpinBox::keyReleaseEvent(QKeyEvent *event)

다시 구현합니다: QWidget::keyReleaseEvent(QKeyEvent * 이벤트).

[protected] QLineEdit *QAbstractSpinBox::lineEdit() const

이 함수는 회전 상자의 줄 편집에 대한 포인터를 반환합니다.

setLineEdit()도 참조하세요 .

[override virtual] QSize QAbstractSpinBox::minimumSizeHint() const

속성에 대한 액세스 함수를 다시 구현합니다: QWidget::minimumSizeHint.

[override virtual protected] void QAbstractSpinBox::mouseMoveEvent(QMouseEvent *event)

다시 구현합니다: QWidget::mouseMoveEvent(QMouseEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::mousePressEvent(QMouseEvent *event)

다시 구현합니다: QWidget::mousePressEvent(QMouseEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::mouseReleaseEvent(QMouseEvent *event)

다시 구현합니다: QWidget::mouseReleaseEvent(QMouseEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::paintEvent(QPaintEvent *event)

다시 구현합니다: QWidget::paintEvent(QPaintEvent * 이벤트).

[override virtual protected] void QAbstractSpinBox::resizeEvent(QResizeEvent *event)

다시 구현합니다: QWidget::resizeEvent(QResizeEvent * 이벤트).

[slot] void QAbstractSpinBox::selectAll()

접두사와 접미사를 제외한 스핀박스의 모든 텍스트를 선택합니다.

[protected] void QAbstractSpinBox::setLineEdit(QLineEdit *lineEdit)

스핀박스의 줄 편집을 현재 줄 편집 위젯 대신 lineEdit 로 설정합니다. lineEditnullptr 이 될 수 없습니다.

QAbstractSpinBox 의 소유권을 가져옵니다. lineEdit

lineEdit 에 대한 QLineEdit::validator()가 nullptr 를 반환하면 스핀박스의 내부 유효성 검사기가 줄 편집에 설정됩니다.

lineEdit()도 참조하세요 .

[override virtual protected] void QAbstractSpinBox::showEvent(QShowEvent *event)

다시 구현합니다: QWidget::showEvent(QShowEvent * 이벤트).

[override virtual] QSize QAbstractSpinBox::sizeHint() const

속성에 대한 액세스 함수를 다시 구현합니다: QWidget::sizeHint.

[virtual] void QAbstractSpinBox::stepBy(int steps)

사용자가 단계를 트리거할 때마다 호출되는 가상 함수입니다. steps 매개변수는 얼마나 많은 단계를 수행했는지를 나타냅니다. 예를 들어 Qt::Key_Down 을 누르면 stepBy(-1) 으로 호출이 트리거되고 Qt::Key_PageUp 을 누르면 stepBy(10) 으로 호출이 트리거됩니다.

QAbstractSpinBox 을 서브클래싱하는 경우 이 함수를 다시 구현해야 합니다. 이 함수는 결과 값이 최소값과 최대값의 범위를 벗어나는 경우에도 호출된다는 점에 유의하세요. 이러한 상황을 처리하는 것이 이 함수의 역할입니다.

stepUp(), stepDown(), keyPressEvent()도 참조하세요 .

[slot] void QAbstractSpinBox::stepDown()

한 줄씩 아래로 이 슬롯을 호출하는 것은 stepBy(-1)을 호출하는 것과 유사합니다;

stepBy() 및 stepUp()도 참조하세요 .

[virtual protected] QAbstractSpinBox::StepEnabled QAbstractSpinBox::stepEnabled() const

특정 시점에 스텝업 및 스텝다운이 합법적인지 여부를 결정하는 가상 함수입니다.

위쪽 화살표는 (stepEnabled() & StepUpEnabled) != 0.

래핑이 켜져 있으면 기본 구현은 (StepUpEnabled| StepDownEnabled)을 반환합니다. 그렇지 않으면 값이 최소값() 이상이면 StepDownEnabled, 값이 최대값() 미만이면 StepUpEnabled 을 반환합니다.

QAbstractSpinBox 을 서브클래싱하는 경우 이 함수를 다시 구현해야 합니다.

QSpinBox::minimum(), QSpinBox::maximum() 및 wrapping()도 참조하세요 .

[slot] void QAbstractSpinBox::stepUp()

한 단계씩 올라가기 이 슬롯을 호출하는 것은 stepBy(1)을 호출하는 것과 유사합니다;

stepBy() 및 stepDown()도 참조하세요 .

[override virtual protected] void QAbstractSpinBox::timerEvent(QTimerEvent *event)

다시 구현합니다: QObject::timerEvent(Q타이머이벤트 *이벤트).

[virtual] QValidator::State QAbstractSpinBox::validate(QString &input, int &pos) const

이 가상 함수는 QAbstractSpinBox 에 의해 호출되어 input 이 유효한지 여부를 확인합니다. pos 매개변수는 문자열의 위치를 나타냅니다. 다양한 서브클래스에서 재구현되었습니다.

[override virtual protected] void QAbstractSpinBox::wheelEvent(QWheelEvent *event)

다시 구현합니다: QWidget::wheelEvent(QWheelEvent * 이벤트).

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