Maison >développement back-end >Tutoriel Python >Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5

Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5

不言
不言original
2018-04-19 10:55:105457parcourir

Cet article présente principalement en détail l'effet de barre de progression de PyQt5, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

La barre de progression est utilisée lorsque nous traitons de tâches longues. Il est animé pour indiquer à l'utilisateur que la tâche progresse. Le contrôle QProgressBar fournit une barre de progression horizontale ou verticale. Les programmeurs peuvent définir les valeurs minimales et maximales de la barre de progression. La valeur par défaut est de 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_())

Dans notre exemple, nous avons un contrôle barre de progression horizontale et un contrôle bouton. Cliquez sur le bouton pour démarrer ou arrêter la barre de progression.

self.pbar = QProgressBar(self)

Utilisez QProgressBar pour créer une barre de progression

self.timer = QBasicTimer()

Activer la barre de progression, nous devons utiliser un objet timer.

self.timer.start(100, self)

Pour démarrer l'événement timer, nous devons appeler sa méthode start(). Cette méthode prend deux paramètres : le timeout et l'objet de l'événement qui sera reçu.

 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)

Chaque objet qui hérite de QObject possède un gestionnaire d'événements timerEvent(). Pour que l'événement timer s'applique à la barre de progression, nous avons réécrit ce gestionnaire d'événements.

 def doAction(self, value):

  if self.timer.isActive():
   self.timer.stop()
   self.btn.setText('开始')
  else:
   self.timer.start(100, self)
   self.btn.setText('停止')

Utilisez la méthode doAction() pour démarrer et arrêter le minuteur.

Une fois le programme exécuté

Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5

Recommandations associées :

PyQt5 doit être appris tous les jours QSplitter implémente la séparation des fenêtres

Fonction d'info-bulle qui doit être apprise tous les jours dans PyQt5

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn