일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python
- TFRecord
- 세계대전
- TF
- img
- 세계사
- opencv
- 블록체인
- 유가 급등
- Training
- TensorFlow
- loss
- Perceptron
- DataSet
- terminal
- cv2
- itksnap
- 비트코인
- deeplearning
- dtype
- 퍼셉트론
- 딥러닝
- error
- 브렉시트
- Inference
- pyqt
- numpy
- 유로화
- qtdesigner
- keras
- Today
- Total
활연개랑
[PyQT(파이큐티)] progress bar timer (프로그레스 바 타이머) 설정 본문
progress bar 생성 및 설정하는 방법은 아래 링크를 통해 확인하실 수 있습니다.
[PyQT(파이큐티)] progress bar 색상 변경 및 디자인 변경
일단 progressbar 관련 코드 전체를 보여드리도록 하겠습니다. 아래서 하나씩 설명하기로하고, 간단하게 먼저 설명을 하자면 아래 코드는 qt designer가 아닌, python 코드를 통해서만 시작페이지 ui를
tmdhhey.tistory.com
counter = 0으로 잡고 global을 잡아줘서 다른 함수에서 사용할 수 있도록 합니다.
global counter
counter = 0
시작화면 class 이름은 Ui_main으로 지정했으며 setup_ui 함수를 통해 코드로 ui를 만들어주고 마지막에 retranslateUi 함수를 실행시켜줍니다.
self.retranslateUi(main)
retranslateUi는 Ui_main class 안에 생성되어있는 함수로 ui를 재설정해줍니다.
코드를 확인해보시면 self.timer.start(30)이 있습니다. 타이머의 loading이 시작하는 지점을 설정해줄 수 있습니다.
마지막에 있는 self.timer.timeout.connect(self.progress) 코드로 timeout을 설정해줄 수 있습니다.
self.progress 함수가 실행되고 timeout하겠다는 의미입니다.
def retranslateUi(self, main):
_translate = QtCore.QCoreApplication.translate
main.setWindowTitle(_translate("main", "PDR"))
self.title.setText(_translate("main", "Pulmonary Disease Reader"))
self.loading.setText(_translate("main", " loading..."))
main.show()
self.timer.start(30)
self.timer.timeout.connect(self.progress)
progress 함수는 다음과 같습니다.
아까 위에서 지정해준 counter = 0을 가져와서 100이 되면 stop하고, 100이 되기 전까지 0.7만큼 계속 +됩니다.
저는 조금 더 느리게 카운트하기 위해 0.7로 했지만 보통 +1을 하는게 적당합니다.
return counter로 잡아주면서 counter가 100이 될시 위 retranslateUi함수에서 timeout에 적용됩니다.
def progress(self):
# set value to progress bar
global counter
self.progressBar.setProperty("value", counter)
if counter > 100:
#stop timer
self.timer.stop()
main.close()
widget.show()
counter += 0.7
return counter