Maison >développement back-end >Tutoriel Python >Effet de barre de progression que vous devez apprendre tous les jours dans PyQt5
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é
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!