이 글에서는 주로 PyQt5의 진행률 표시줄 효과를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
진행률 표시줄은 긴 작업을 처리할 때 사용되는 컨트롤입니다. 작업이 진행 중임을 사용자에게 알리기 위해 애니메이션이 표시됩니다. QProgressBar 컨트롤은 수평 또는 수직 진행 표시줄을 제공합니다. 프로그래머는 진행률 표시줄의 최소값과 최대값을 설정할 수 있습니다. 기본값은 0~99입니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子显示了一个进度条控件。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月3日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QPushButton from PyQt5.QtCore import QBasicTimer class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.pbar = QProgressBar(self) self.pbar.setGeometry(30, 40, 200, 25) self.btn = QPushButton('开始', self) self.btn.move(40, 80) self.btn.clicked.connect(self.doAction) self.timer = QBasicTimer() self.step = 0 self.setGeometry(300, 300, 280, 170) self.setWindowTitle('进度条') self.show() def timerEvent(self, e): if self.step >= 100: self.timer.stop() self.btn.setText('完成') return self.step = self.step+1 self.pbar.setValue(self.step) def doAction(self, value): 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 = Example() sys.exit(app.exec_())
이 예에는 수평 진행률 표시줄 컨트롤과 버튼 컨트롤이 있습니다. 진행 표시줄을 시작하거나 중지하려면 버튼을 클릭하세요.
self.pbar = QProgressBar(self)
QProgressBar를 사용하여 진행률 표시줄 만들기
self.timer = QBasicTimer()
진행률 표시줄을 활성화하려면 타이머 개체를 사용해야 합니다.
self.timer.start(100, self)
타이머 이벤트를 시작하려면 start() 메서드를 호출해야 합니다. 이 메소드는 시간 제한과 수신할 이벤트 객체라는 두 가지 매개변수를 사용합니다.
def timerEvent(self, e): if self.step >= 100: self.timer.stop() self.btn.setText('完成') return self.step = self.step+1 self.pbar.setValue(self.step)
QObject에서 상속되는 모든 객체에는 타이머이벤트() 이벤트 핸들러가 있습니다. 타이머 이벤트가 진행률 표시줄에 적용되도록 하기 위해 이 이벤트 핸들러를 다시 작성했습니다.
def doAction(self, value): if self.timer.isActive(): self.timer.stop() self.btn.setText('开始') else: self.timer.start(100, self) self.btn.setText('停止')
타이머를 시작하고 중지하려면 doAction() 메서드를 사용하세요.
프로그램 실행 후
관련 추천 :
PyQt5 창 분리를 구현하기 위해 매일 학습해야 하는 QSplitter
위 내용은 PyQt5에서 매일 배워야 하는 진행바 효과의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!