PythonでPyQt5を使用しQProgressBar(プログレスバー)を作成してみます。
QProgressBarウィジェットは、ファイル転送、ダウンロード、アップロードなどのコンピューターでの操作の進行状況を視覚化することができるウィジェットです。
今回はPyQt5を使用します。PyQt5はPythonの標準ライブラリではないので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)
■QProgressBar(プログレスバー)ウィジェットを作成する
では、早速PyQt5を使用しQProgressBar(プログレスバー)を作成し、表示するスクリプトを書いていきます。
■コード
import sys from PyQt5 import QtWidgets from PyQt5.QtWidgets import QApplication, QWidget if __name__ == "__main__": app = QApplication(sys.argv) root = QWidget() root.resize(300,300) root.setWindowTitle('こんにちは、世界') pro_g_bar = QtWidgets.QProgressBar(root) pro_g_bar.setGeometry(50,50,250,30) pro_g_bar.setValue(0) root.show() sys.exit(app.exec_())
今回はsysモジュールと、importでPyQt5でQtWidgets、「from import」でPyQt5.QtWidgetsのQApplication,QWidgetを呼び出します。
その後に「if __name__ == ‘__main__’」で関数などをまとめたモジュールを作成します。
作成する内容は、app変数を定義し、QApplication()を用いて、QApplicationクラスのオブジェクトを作成し格納。格納後、root変数を定義し、QWidget()を用いてQWidgetクラスのオブジェクトを作成し格納。これはQtのすべてのUIオブジェクトの基本クラス。
格納後、resize()を用いて括弧内に任意のウィジェット(ウインドウ)のサイズを渡します。今回は300px×300pxを引数,パラメータとして渡します。
さらにsetWindowTitle()を用いて括弧内に表示させるウィンドウのタイトル(文字列)を渡します。今回は「こんにちは、世界」という日本語の文字列を引数,パラメータとして渡します。
ウィンドウのタイトルの設定を行った後に、今度はQProgressBar(プログレスバー)ウィジェットを作成します。pro_g_barという変数を定義し、QtWidgets.QProgressBar()を用います。括弧内には引数,パラメータとしてrootを渡します。これでQProgressBar(プログレスバー)ウィジェットが作成されます。
作成後、QProgressBar(プログレスバー)ウィジェットの位置とサイズを設定するために、setGeometry()を用います。括弧内に第1と第2の引数,パラメータとしてスライダーのX位置とY位置を渡します。第3と第4の引数,パラメータには、スライダーの幅と高さを渡します。
位置とサイズを設定後、setValue()を用いて、括弧内に引数,パラメータとして作成したQProgressBar(プログレスバー)の値(Value)を渡します。今回は「0」とします。
その後、show()を用いてウィジェット(ウインドウ)をモニター画面に表示させます。
最後にsys.exit(app.exec_())を用います。app.exec_()は、イベントのループを開始させることができます。さらにQtに制御を渡し、ユーザーがGUIからアプリケーションを閉じた時のみ、アプリケーションを終了となりますので、途中でイベントが終了することはありません。このsys.exit(app.exec_())を用いずに、実行すると、ウインドウがすぐに閉じてしまいます。
■実行・検証
このスクリプトを「qt_progressbar.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみると、ウインドウ内に、作成したQProgressBar(プログレスバー)が表示され、表示させたプログレスバーの値を「0」と設定しましたので、プログレスバーの表記を「0%」と表示させることができました。
コメント