PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。
GUI アプリで決まった間隔で表示の更新などの処理をさせたい場合、QTimer を利用すると簡単に処理を実装できます。
今回のテーマ
- PySide6 の QLCDNumber と QTimer クラスを利用して、シンプルなデジタル時計アプリを作ります。
下記の OS 環境で動作確認をしています。
RHEL 9.4 | x86_64 | |
Python | 3.12.1 | |
PySide6 | 6.7.0 |
メインの PC に Fedora Linux を利用していましたが、今月初めに dnf update でパッケージを更新した後、Fedora Linux 40 上 venv で利用している PySide6 アプリがコアダンプを吐いて利用できなくなりました。原因がわからず、日々利用している自作アプリに支障が出たので、やむなく RHEL に切り替えています [3]。
サンプルと実行例を以下に示しました。
qt_lcdnumber.py
qt_lcdnumber.py の実行例
QTimer クラスを使用するには、QTimer のインスタンスを作成し、timeout() シグナルを適切なスロット(処理するメソッド)に接続し、msec で間隔を指定した start() メソッドを呼び出します。以降、指定された間隔で timeout() シグナルが発せられます。
timer = QTimer(self) timer.timeout.connect(self.update_time) timer.start(1000)
本サンプルでは 1000 msec = 1 sec 間隔で timeout() シグナルが発せられるようにして self.update_time() メソッドで QLCDNumber クラスのインスタンスの時刻表示を更新しています。
参考サイト
- QLCDNumber - Qt for Python
- QTimer - Qt for Python
- After updating fedora 40 PySide6 in Python it does not work - Fedora Discussion
にほんブログ村
#オープンソース
0 件のコメント:
コメントを投稿