In diesem Artikel wird hauptsächlich der Fortschrittsbalkeneffekt von PyQt5 vorgestellt, der einen gewissen Referenzwert hat.
Der Fortschrittsbalken ist die verwendete Steuerung. Es ist animiert, um den Benutzer darüber zu informieren, dass die Aufgabe voranschreitet. Das QProgressBar-Steuerelement stellt einen horizontalen oder vertikalen Fortschrittsbalken bereit. Programmierer können die Mindest- und Höchstwerte des Fortschrittsbalkens festlegen. Der Standardwert liegt zwischen 0 und 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_())
In unserem Beispiel haben wir ein horizontales Fortschrittsbalken-Steuerelement und ein Schaltflächen-Steuerelement. Klicken Sie auf die Schaltfläche, um den Fortschrittsbalken zu starten oder zu stoppen.
self.pbar = QProgressBar(self)
Verwenden Sie QProgressBar, um einen Fortschrittsbalken zu erstellen
self.timer = QBasicTimer()
Aktivieren Für den Fortschrittsbalken müssen wir ein Timer-Objekt verwenden.
self.timer.start(100, self)
Um das Timer-Ereignis zu starten, müssen wir seine start()-Methode aufrufen. Diese Methode benötigt zwei Parameter: den Timeout und das Objekt des Ereignisses, das empfangen wird.
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)
Jedes Objekt, das von QObject erbt, verfügt über einen timerEvent()-Ereignishandler. Damit das Timer-Ereignis auf den Fortschrittsbalken angewendet werden kann, haben wir diesen Ereignishandler neu geschrieben.
def doAction(self, value): if self.timer.isActive(): self.timer.stop() self.btn.setText('开始') else: self.timer.start(100, self) self.btn.setText('停止')
Verwenden Sie die Methode doAction(), um den Timer zu starten und zu stoppen.
Nachdem das Programm ausgeführt wurde
Verwandte Empfehlungen:
PyQt5 muss sein jeden Tag gelernt QSplitter implementiert die Fenstertrennung
Tooltip-Funktion, die jeden Tag in PyQt5 gelernt werden muss
Das obige ist der detaillierte Inhalt vonFortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!