Qt/PyQt5 강좌
pyQt5 QSlider 예제
webnautes
2024. 8. 19. 21:28
반응형
QSlider를 사용하여 생성한 5개의 슬라이더를 조정하여 5자리 정수를 조합해보는 예제입니다.
2024. 8. 16 최초작성
import sys from PyQt5.QtWidgets import QApplication, QWidget, QSlider, QVBoxLayout, QHBoxLayout, QLabel from PyQt5.QtCore import Qt # QWidget을 상속받는 SliderDemo 클래스 정의합니다. class SliderDemo(QWidget): # 초기화 메서드 def __init__(self): # 부모 클래스 초기화 super().__init__() # UI 초기화 메서드 호출 self.initUI() def initUI(self): self.setWindowTitle('QSlider Demo') # 창 제목 설정 self.setGeometry(300, 300, 300, 200) # 창 위치와 크기 설정 ( x, y, w, h) layout = QVBoxLayout() # 수직 레이아웃 생성 self.sliders = [] # 슬라이더 리스트 self.labels = [] # 라벨 리스트 for i in range(5): # 5개의 슬라이더와 라벨 생성 slider = QSlider(Qt.Horizontal) # 수평 슬라이더 생성 slider.setRange(0, 9) # 슬라이더 범위 설정 (0-9) slider.setValue(0) # 초기값을 0으로 설정 slider.setTickPosition(QSlider.TicksBelow) # 틱 위치 설정 slider.setTickInterval(1) # 틱 간격 설정 slider.valueChanged.connect(self.updateValue) # 값 변경 시 이벤트 연결 label = QLabel(f'Slider {i+1}: 0') # 라벨 생성 self.sliders.append(slider) # 슬라이더 리스트에 추가 self.labels.append(label) # 라벨 리스트에 추가 slider_layout = QHBoxLayout() # 수평 레이아웃 생성 slider_layout.addWidget(slider) # 슬라이더 추가 slider_layout.addWidget(label) # 라벨 추가 layout.addLayout(slider_layout) # 메인 레이아웃에 슬라이더와 라벨을 추가 self.result_label = QLabel('Combined number: 00000') # 슬라이더 결과를 보여줄 라벨 생성 layout.addWidget(self.result_label) # 메인 레이아웃에 결과 라벨 추가 self.setLayout(layout) # 레이아웃 설정 def updateValue(self): # 값 업데이트 메서드 combined_number = '' # 결합된 숫자 초기화 for i, slider in enumerate(self.sliders): # 모든 슬라이더에 대해 value = slider.value() # 슬라이더 값 가져오기 self.labels[i].setText(f'Slider {i+1}: {value}') # 각 슬라이더를 위한 라벨 업데이트 combined_number += str(value) # 결합된 숫자를 생성 self.result_label.setText(f'Combined number: {combined_number}') # 결과 라벨 업데이트 if __name__ == '__main__': app = QApplication(sys.argv) demo = SliderDemo() demo.show() sys.exit(app.exec_()) |
반응형