この記事では、主に PyQt5 のプログレス バーの効果について詳しく紹介します。興味のある方は参考にしてください。
プログレス バーは、長いタスクを処理するときに使用するコントロールです。タスクが進行していることをユーザーに知らせるためにアニメーション化されます。 QProgressBar コントロールは、水平または垂直の進行状況バーを提供します。プログラマはプログレスバーの最小値と最大値を設定できます。デフォルト値は 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_())
この例では、水平方向のプログレス バー コントロールとボタン コントロールがあります。ボタンをクリックして進行状況バーを開始または停止します。
self.pbar = QProgressBar(self)
QProgressBarを使用してプログレスバーを作成します
self.timer = QBasicTimer()
プログレスバーをアクティブにするには、タイマーオブジェクトを使用する必要があります。
self.timer.start(100, self)
タイマーイベントを開始するには、その start() メソッドを呼び出す必要があります。このメソッドは、タイムアウトと受信するイベントのオブジェクトという 2 つのパラメータを取ります。
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)
QObject から継承するすべてのオブジェクトには、timerEvent() イベント ハンドラーがあります。タイマー イベントをプログレス バーに適用するために、このイベント ハンドラーを書き直しました。
def doAction(self, value): if self.timer.isActive(): self.timer.stop() self.btn.setText('开始') else: self.timer.start(100, self) self.btn.setText('停止')
タイマーを開始および停止するには、doAction() メソッドを使用します。
プログラム実行後
関連推奨事項:
PyQt5 ウィンドウ分割を実装するために毎日学習する必要がある QSplitter
以上がPyQt5で毎日学ぶ必要があるプログレスバー効果の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。