[PyQt5] 위젯, 진행바, 진행도, 퍼센트
2020. 2. 13. 10:00ㆍIT/PyQt5
프로그램은 열심히 일하고 있어도 사용자는 그걸 알지 못합니다. 그래서 작업이 얼마나 진행되었는지 직관적으로 알기위해서 진행도를 표시합니다.
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar
from PyQt5.QtCore import QBasicTimer
class progressbarApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.progressbar = QProgressBar(self)
self.progressbar.setGeometry(20,30,100,30)
self.btn = QPushButton('시작', self)
self.btn.move(20,70)
self.btn.clicked.connect(self.btnClicked)
self.timer = QBasicTimer()
self.step = 0
self.setWindowTitle('진행바')
self.setGeometry(500,500,150,150)
self.show()
def timerEvent(self, e):
if self.step >= 100:
self.timer.stop()
self.btn.setText('완료')
return
self.step = self.step + 1
self.progressbar.setValue(self.step)
def btnClicked(self):
if self.timer.isActive():
self.timer.stop()
self.btn.setText('시작')
else:
self.timer.start(100, self)
self.btn.setText('중지')
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = progressbarApp()
sys.exit(app.exec_())
진행바는 QProgressBar()로 만들 수 있습니다. self.step이라는 변수에 0이라는 숫자를 넣고, 시간이 지남에 따라 1씩 증가하도록 설정합니다. 그리고 증가한 값은 progressbar.setValue()으로 진행바에 표시할 수 있습니다. 참고로 timerEvent은 기본적으로 제공되는 기능인데 새로 작성해서 오버라이딩(덮어쓰기)한 것입니다.
'IT > PyQt5' 카테고리의 다른 글
[PyQt5] 위젯, 이미지, 크기, 조절 (0) | 2020.02.25 |
---|---|
[PyQt5] 위젯, 입력창, 통합, 테스트 (0) | 2020.02.12 |
[PyQt5] 위젯, 라인, 에디트, 인풋, 텍스트 (0) | 2020.02.12 |
[PyQt5] 위젯, 콤보박스, 리스트, 선택 (0) | 2020.02.12 |
[PyQt5] 위젯, 라디오, 단일, 선택 (0) | 2020.02.12 |