>  기사  >  백엔드 개발  >  PyQt5에서 매일 배워야 하는 진행바 효과

PyQt5에서 매일 배워야 하는 진행바 효과

不言
不言원래의
2018-04-19 10:55:105445검색

이 글에서는 주로 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에서 매일 배워야 하는 진행바 효과PyQt5에서 매일 배워야 하는 진행바 효과PyQt5에서 매일 배워야 하는 진행바 효과

관련 추천 :

PyQt5 창 분리를 구현하기 위해 매일 학습해야 하는 QSplitter

PyQt5 매일 학습해야 하는 툴팁 기능

위 내용은 PyQt5에서 매일 배워야 하는 진행바 효과의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.