PyQt5의 ProgresssBar 사용 편의성 향상

5082 단어 PythonguiQttech

tqdm처럼 사용하고 싶어요.


pyqtSignal을 사용하는 방법도 있지만 대부분 for회로 등에서 사용
tqdm처럼 리스트에 넘기면 진도표를 간단하게 업데이트하고 싶어요.
균형기로 실현할 수 있을 것 같아...

각본

progress_bar_util.py
class ProgressBarUtil(object):
    def __init__(self, list, progress_bar) -> None:
        self.progress_bar = progress_bar

        self.iter = iter(list)
        self.max = len(list)
        self.val = 0

        self.progress_bar.setValue(0)

    def __iter__(self):
        return self
    
    def __next__(self):
        self.val += 1
        self.progress_bar.setValue(self.val/self.max * 100)

        if self.val >= self.max:
            raise StopIteration()

        
        return self.iter.__next__()
사용법
import time
from progress_bar_util import ProgressBarUtil

for i in ProgressBarUtil(range(7), ui.progress_bar):
    print(i)
    time.sleep(1)

example



https://github.com/yn4k4nishi/pyqt-progressbar-util

좋은 웹페이지 즐겨찾기