티스토리 뷰

 

 

프로그램은 열심히 일하고 있어도 사용자는 그걸 알지 못합니다. 그래서 작업이 얼마나 진행되었는지 직관적으로 알기위해서 진행도를 표시합니다. 

 

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은 기본적으로 제공되는 기능인데 새로 작성해서 오버라이딩(덮어쓰기)한 것입니다. 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함