본문 바로가기
파이썬 (Python)/파이썬 GUI + PyQt5

파이썬 Python의 GUI 구현 PyQt5 QProgressBar 모듈 이용하기 setMaximum() + setMinimum + setValue()

by ★√★ 2021. 3. 2.

 안녕하세요, 오늘 설명 드릴 내용은, progress bar 입니다. 없어도, 그냥 마냥 기다리면 되는데, 한국 사람들은 시각적으로 progress를 보길 원하고, 빨리 빨리 문화가 있어서 그런가, 없으면, 먼가 허전하더라구요. 그래서 이번에 포스팅하게 되었습니다.

 

 

파이썬-Pyqt5-QProgressBar-썸네일
PyQt5 파헤치기 QProgressBar 모듈 이용하기 setMaximum() + setMinimum + setValue()

 

 요즘 PyQt5 사용하는 거에 대해서 이것 저것 알아보고 있는 정말 유용한 Function이 많은 거 같습니다. 실제적으로 저는 designer를 이용하지 않고, code로만 조정을 하는데요, 직관적인 것을 선호하시면 designer로 먼저 다 세팅하시고, ui file을 py file로 변환해서 쓰셔도 됩니다. 서론이 길었네요, 설명 드릴 progress bar에 대해서 하나 하나 설명 드리도록 하겠습니다.

 

 

1. QProgressBar 모듈 이용하기

 

: PyQt5 내에서 사용할 수 있는 Progress Bar 모듈로써, setMaximum(), setMinimum 그리고 setValue()를 조정하여, 범위를 지정하고, setValue()를 통해서, Progress를 시각적으로 보여주는 모듈입니다.

 

 1) setMaximum(), setMinimum() : 시작점과 끝점의 값을 입력

    - Default 값은, setMinimum()는 0, setMaximum()는 99 로 각각 정해져 있음.

 

 2) setValue() : Progress Bar의 진행정도를 보여주는 Value.

 

 

2.  예제를 통해서 QProgressBar 모듈 이용하기

 

: QProgressBar 모듈를 이용하기 위해서, import를 해주고, 다른 관련 필요한 모듈도 같이 import를 해줍니다. 다른 기교를 부리는 것 보다는  for문 이용해서 코드를 작성해 보도록 하겠습니다. 어떤 프로그램을 돌리는 게 아니니까, Progress Bar를 시작하는 버튼도 추가하도록 하겠습니다.

 

# 필요한 모듈을 모두 import 해줍니다. QProgressBar는 필수입니다.

 

import sys

import time

 

from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QProgressBar, QMainWindow

 

# Progress_bar_Demonstration 이름으로 Window 창을 설정

class Progress_bar_Demonstration(QMainWindow):

    def __init__(self):

        super(Progress_bar_Demonstration, self).__init__()

        self.setGeometry(850, 300, 230, 120)

        self.setWindowTitle("Progress_bar_Demonstration.")

        self.Progress_bar_show()

 

    def Progress_bar_show(self):

 

        self.progreesbar1 = QProgressBar(self)  # QProgressBar를 선언해주고 관련된 Property를 설정해줍니다.

        self.progreesbar1.setGeometry(30, 40, 200, 25) # Window창이 등장하는 위치와 크기를 조정함

 

        self.progreesbar1.setMinimum(0) # progress bar의 시작 Point를 설정

        self.progreesbar1.setMaximum(10) # progress bar의 끝 Point를 설정

 

        self.b1 = QPushButton('Start', self) # progress bar를 시작하는 시작 버튼을 선언

        self.b1.move(30, 65)

        self.b1.clicked.connect(self.action1) # Button이 눌러졌을 때 발생하는 이벤트와 연결

 

   

    # b1의 Button이 눌러졌을 때 발생하는 이벤트를 선언

    def action1(self):

 

        for i in range(11):

            if i == 10:

                self.b1.setText("Completed") # Progress bar가 다 채워졌을 때 Button의 Text를 "Completed" 로 변경

                self.progreesbar1.setValue(i)

                time.sleep(1) # Time Interval를 두어 천천히 Progress Bar가 채워지게 함.

                # i = i + 1

            else:

                self.progreesbar1.setValue(i)

                time.sleep(1)

                i = i + 1

 

if __name__ == '__main__':

    app = QApplication(sys.argv)

    ex = Progress_bar_Demonstration()

    ex.show()

    sys.exit(app.exec_())

 


QProgressBar 모듈 Demonstration 화면

파이썬-Pyqt5-QProgressBar-구현-관련-사진
파이썬-Pyqt5-QProgressBar-구현-관련-사진



  이상입니다. 지금까지 QProgressbar 모듈을 이용하여  progress bar 만드는 법에 대해서 포스팅을 하였습니다. 정말 간단해 보이지만, 이걸 자신에 입맛에 맞게 설정을 하고, 구현을 한다면 정말 많이 도움이 되는 코드가 될 거라고 생각합니다.

 

 보통 Designer에서 설정을 할때도 있지만, 이렇게 코드를 통해서 어떻게 구동이 되고, 눈에 익히면서 설정하는 것도 하나의 코딩 공부가 되지 않을까 합니다. 그럼 오늘도 공부하느라고 수고하셨습니다. 같이 공부하고, 같이 성장하시죠! 감사합니다.

 

 제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다. 

[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]

728x90

댓글


// 내부링크를 현재창으로 열기 // Open internal links in same tab