1. 코드

from PyQt5.QtWidgets import QWidget, QApplication, QSpinBox, QDoubleSpinBox, QVBoxLayout, QLabel
from PyQt5.QtCore import Qt
import sys

class 스핀박스(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):

        ###--------------QSpinBox-----------------###

        self.label1 = QLabel('QSpinBox')
        self.spinbox = QSpinBox()
        self.spinbox.setMinimum(0)
        self.spinbox.setMaximum(100000000)
        self.spinbox.setSingleStep(1000) 
        self.label2 = QLabel('0')
        
        self.spinbox.valueChanged.connect(self.valueChange)

        # ==============QDoubleSpinBox===========### 

        self.label3 = QLabel('QDoubleSpinBox')
        self.dSpinbox = QDoubleSpinBox()  
        self.dSpinbox.setSingleStep(0.5)
        
        self.dSpinbox.setSuffix("달러")
        self.dSpinbox.setDecimals(1)
        self.label4 = QLabel('0')

        self.dSpinbox.valueChanged.connect(self.valueChange2)

        vbox = QVBoxLayout(self)
        vbox.addWidget(self.label1)
        vbox.addWidget(self.spinbox)
        vbox.addWidget(self.label2)
        vbox.addWidget(self.label3)
        vbox.addWidget(self.dSpinbox)
        vbox.addWidget(self.label4)

        self.setLayout(vbox)
        self.setWindowTitle('QSpinBox, QDoubleSpinBox')
        self.setGeometry(300, 300, 400, 300)
        self.show()

		def valueChange(self):
        self.label2.setText(f'{self.spinbox.value()}원 ->' +
                            f'{round(self.spinbox.value()/1191, 2)}달러')

    def valueChange2(self):
        self.label4.setText(f'{self.dSpinbox.value()}달러 -> '+ 
                            f'{round(self.dSpinbox.value()*1191, 2)}원')

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 스핀박스()
프로그램무한반복.exec_()

2. 상세 내용

SpinBox는 숫자를 올리거나 내릴 때 사용할 수 있는 input 창입니다. 정수는 QSpinBox를 통하여, 실수는 QDoubleSpinBox를 통해 구현할 수 있습니다.

###--------------QSpinBox-----------------###

self.label1 = QLabel('QSpinBox')
self.spinbox = QSpinBox()
self.spinbox.setMinimum(0)
self.spinbox.setMaximum(100000000)
self.spinbox.setSingleStep(1000)
self.label2 = QLabel('0')

self.spinbox.valueChanged.connect(self.valueChange)
def valueChange(self):
    self.label2.setText(str(self.spinbox.value())+" 원     ->    " +
                        str(round(self.spinbox.value()/1191, 2)) + " 달러")
# ==============QDoubleSpinBox===========###

self.label3 = QLabel('QDoubleSpinBox')
self.dSpinbox = QDoubleSpinBox()
self.dSpinbox.setSingleStep(0.5)

self.dSpinbox.setSuffix("달러")
self.dSpinbox.setDecimals(1)
self.label4 = QLabel('0')

self.dSpinbox.valueChanged.connect(self.valueChange2)