PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。配布ライセンスは LGPL で公開されています。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.2.2.1)です。
大きなファイルを読み込むときや、時間がかかる処理をしている時、GUI が反応しなくなります。自分用にちゃちゃっと作る GUI プログラムではそれでも我慢できますが、他の人も利用するようになったら、ちとダサいです。プログラムが固まると苦情を受けること必至です。ひと手間かけてスレッドで処理を分ければいいのですが、結局のところ、処理が終わるまでは他の処理をできなくして、進捗だけ表示させておけば良い場合が多いです。
そんなとき、QProgressDialog を利用すれば、進捗ダイアログで表示させ modal にしておけば、進捗を表示する上、親ウィンドウの操作ができなくなって便利です。
本記事では、下記の OS 環境を使用しています。
Fedora Linux 35 Workstation | x86_64 |
まずは、ボタンをクリックしてダミーのタスクを実行し、その進捗を表示させるサンプルです。
qt_progressdialog.py の実行例
qt_progressdialog.py
一方、進捗を測る数字を取れない場合もあります。そんなときは、QProgressDialog の setRange メソッドで (0, 0) としておけば、進捗に関係なく進捗バーが動いているようになります。
qt_progressdialog_2.py の実行例
qt_progressdialog_2.py
QProgressDialog のダイアログ画面では、デフォルトでキャンセルボタンが表示されます。今回は良いサンプルを用意できなかったので、表示しないようにしてしまいましたが、サンプルを工夫できれば、あらためて紹介します。
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿