2024-05-16

QLCDNumber と QTimer ~ PySide6

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 クラスのインスタンスの時刻表示を更新しています。

参考サイト

  1. QLCDNumber - Qt for Python
  2. QTimer - Qt for Python
  3. After updating fedora 40 PySide6 in Python it does not work - Fedora Discussion

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: