pyQt5 QSlider 예제Qt/PyQt5 강좌2024. 8. 19. 21:28
Table of Contents
반응형
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_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
pyQt5로 만든 이미지 뷰어 (0) | 2024.08.21 |
---|---|
pyQt5 윈도우를 화면의 중앙에 배치하기 (0) | 2024.08.19 |
정수를 읽어서 한글로 변환해주는 pyQt5 예제 (0) | 2024.08.18 |
정수 입력시 천 단위로 콤마를 추가해주는 pyQt5 예제 (0) | 2024.08.17 |
pyQt5 QTableWidget 예제 코드 (0) | 2024.08.16 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!