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

不言
Libérer: 2018-04-19 10:55:10
original
5477 Les gens l'ont consulté

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_())
Copier après la connexion

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)
Copier après la connexion

Utilisez QProgressBar pour créer une barre de progression

self.timer = QBasicTimer()
Copier après la connexion

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

self.timer.start(100, self)
Copier après la connexion

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)
Copier après la connexion

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('停止')
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal