Appia의 IT세상

파이썬[Python GUI, PyQt5 Tutorial 023] 프로그래스바(QProgressBar)만들기 본문

Python/Python PyQt5 (GUI)

파이썬[Python GUI, PyQt5 Tutorial 023] 프로그래스바(QProgressBar)만들기

Appia 2020. 7. 28. 07:36
반응형

파이썬[Python GUI, PyQt5 Tutorial 023] 프로그래스바(QProgressBar)만들기

 

이번 포스팅에서는 상태에 대해서 가장 많이 표시되는 프로그래스바(QProgressBar)에 대해서 이야기를 해보고자 합니다. 흔히 프로그래스바(QProgressBar)에 대해서 가장 쉽게 이야기를 하자면, 프로그램등을 설치시에 관련된 파일의 진척상황등을 표시할 때를 이야기할 수 있습니다. 물론, 다음과 같은 그림일 수 있겠죠? 

프로그래스바(QProgressBar)예시 

다음과 같이 현재의 진행 상태등을 이야기 할 때 가장 많이 사용 됩니다. 그럼 다음의 코드에서 관련해서 한번 살펴보겠습니다. 예제 코드는 간단히 버튼을 누르면 프로그래스바(QProgressBar)가 0.5 초에 한번씩 1퍼센트씩 올라가게 코드를 작성해봤습니다. 물론, QObject의 timer를 이용할 수 있지만, 그냥 간단히 한번 해보기 위해서 다음과 같이 작성해봤습니다. 

import sys
import time
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar
 
class App(QWidget):
 
    def __init__(self):
        super().__init__()
        self.buttonflag = 0
        self.flag = 0
        self.num = 0
 
        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(304020025)
 
        self.btn = QPushButton('시작', self)
        self.btn.move(4080)
        self.btn.clicked.connect(self.start_progress)
        self.setWindowTitle('QProgressBar')
        self.setGeometry(300300300200)
        self.show()
 
    def start_progress(self):
 
        for i in range(0101):
 
            self.num = i
            self.pbar.setValue(self.num)
            time.sleep(0.5)
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_()) 
cs

 

간단하게 버튼을 누르면, 0.5초마다 1퍼센트씩 프로그래스바(QProgressBar)가 진행되는 부분을 작성해봤습니다. 그럼 관련해서 간단히 살펴보겠습니다. 

 

먼저, 프로그래스바(QProgressBar)를 생성하기 위한 부분은 다음과 같은 부분입니다. 

        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(304020025)
cs

다음 보이는 코드에서는 간단한 사이즈와 생성만 하였습니다. 하지만 다음과 같은 부분들을 선택적으로 명시할 수 있습니다. 

minimum() 프로그래스바(QProgressBar)의 최소값을 리턴해줍니다. 
maximum() 프로그래스바(QProgressBar)의 최대값을 리턴해줍니다. 
setMinimum() 프로그래스바(QProgressBar)의 최소값을 설정합니다.
setMaximum() 프로그래스바(QProgressBar)의 최대값을 설정합니다.
value() 프로그래스바(QProgressBar)의 현재 값을 리턴합니다. 
setValue(Value) 프로그래스바(QProgressBar)의 값을 설정합니다. 
reset() 프로그래스바(QProgressBar) 값을 초기화 합니다. 

그리고 위의 속성을 바탕으로 버튼을 누르면 동작하게 하였습니다. 그럼 연결된 이벤트에 대해서 살펴보겠습니다. 

    def start_progress(self):
        for i in range(0101):
            self.num = i
            self.pbar.setValue(self.num)
            time.sleep(0.5)
cs

다음과 같이 0부터 100까지 값이 계속 업데이트 되게 이벤트 처리를 하였습니다. 

 

QT_Tutorial_025.py
0.00MB

위에서 사용된 코드를 업데이트 하였습니다. 혹시 필요하신 분들은 언제든지 사용하셔도 됩니다. 

파이썬[Python GUI, PyQt5 Tutorial 022] 메시지박스(Messagebox)만들기

앞서서 메시지 박스와 연결하여 퍼센트지가 다 차면, 메시지박스를 나타나게 해주는 방식으로 작성해도 매우 좋을 것 같습니다. 생각보다 그런 형태로도 많이 작성합니다. 또한, 설치 중에 문제가 있을 경우 관련해서 경고를 나타내도 좋을 것 같습니다. 

 

이번 포스팅은 파이썬[Python GUI, PyQt5 Tutorial 023] 프로그래스바(QProgressBar)만들기라는 주제로 간단히 살펴봤습니다. 혹시 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시면 면됩니다. 감사합니다. 

 

반응형
Comments