Heim > Backend-Entwicklung > Python-Tutorial > Fortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssen

Fortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssen

不言
Freigeben: 2018-04-19 10:55:10
Original
5483 Leute haben es durchsucht

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_())
Nach dem Login kopieren

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)
Nach dem Login kopieren

Verwenden Sie QProgressBar, um einen Fortschrittsbalken zu erstellen

self.timer = QBasicTimer()
Nach dem Login kopieren

Aktivieren Für den Fortschrittsbalken müssen wir ein Timer-Objekt verwenden.

self.timer.start(100, self)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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('停止')
Nach dem Login kopieren

Verwenden Sie die Methode doAction(), um den Timer zu starten und zu stoppen.

Nachdem das Programm ausgeführt wurde

Fortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssenFortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssenFortschrittsbalkeneffekt, den Sie jeden Tag in PyQt5 lernen müssen

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage