프로그레스 바(QProgressBar)를 제어하는 간단한 PyQt5 예제Qt/PyQt5 강좌2024. 8. 31. 06:01
Table of Contents
반응형
프로그레스 바(QProgressBar)를 제어하는 간단한 PyQt5 예제입니다.
2024. 8. 31 최초작성
시작 버튼을 클릭하면 프로그레스 바가 진행되면서 파란색 영역이 채워지다가 정지 버튼을 클릭하면 멈춥니다.
초기화 버튼을 클릭하면 프로그레스 바가 초기화됩니다.
100% 채우기 버튼을 클릭하면 프로그레스 바가 꽉차게 됩니다.
전체 코드입니다.
import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar, QVBoxLayout from PyQt5.QtCore import QTimer, QObject, pyqtSignal class ProgressBarController(QObject): progress_complete = pyqtSignal() def __init__(self, progress_bar): super().__init__() self.progress_bar = progress_bar self.timer = QTimer(self) self.timer.timeout.connect(self.update_progress) def start(self): if not self.timer.isActive(): self.timer.start(100) def stop(self): self.timer.stop() def reset(self): self.stop() self.progress_bar.setValue(0) def fill(self): self.progress_bar.setValue(100) self.stop() self.progress_complete.emit() def update_progress(self): current_value = self.progress_bar.value() if current_value < 100: self.progress_bar.setValue(current_value + 1) else: self.stop() self.progress_complete.emit() class ProgressBarApp(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setWindowTitle('프로그레스 바 예제') self.setGeometry(300, 300, 300, 200) layout = QVBoxLayout() self.progress_bar = QProgressBar(self) self.progress_bar.setMaximum(100) layout.addWidget(self.progress_bar) self.controller = ProgressBarController(self.progress_bar) self.start_button = QPushButton('시작', self) self.start_button.clicked.connect(self.controller.start) layout.addWidget(self.start_button) self.stop_button = QPushButton('정지', self) self.stop_button.clicked.connect(self.controller.stop) layout.addWidget(self.stop_button) self.reset_button = QPushButton('초기화', self) self.reset_button.clicked.connect(self.controller.reset) layout.addWidget(self.reset_button) self.fill_button = QPushButton('100% 채우기', self) self.fill_button.clicked.connect(self.controller.fill) layout.addWidget(self.fill_button) self.setLayout(layout) if __name__ == '__main__': app = QApplication(sys.argv) ex = ProgressBarApp() ex.show() sys.exit(app.exec_()) |
반응형
'Qt > PyQt5 강좌' 카테고리의 다른 글
PyQt5 라벨 사용 예제 - QLabel, QFont, StyleSheet (4) | 2024.09.02 |
---|---|
테이블(QTableWidget)에 콤보박스(QComboBox) 추가하기 (3) | 2024.09.01 |
PyQt5 그룹박스(QGroupBox) 예제 (0) | 2024.08.31 |
PyQt5에서 QTableWidget를 마우스로 클릭하여 선택되는 것 방지 (2) | 2024.08.29 |
탭 재생성 시 이전 선택 탭 복원하는 pyQt5 예제 (2) | 2024.08.23 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!