PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。
python で日付や時間情報を扱う時にはもっぱら datetime モジュールを利用してきました。しかし GUI ライブラリに PySide6 を利用するのであれば、日付や時間情報も QDate あるいは QDateTime クラスを利用した方が便利のように思えます。
簡単なサンプルの作成を重ねて評価しようと、今回は QCalendarWidget と QDate をサンプルにしてみました。
下記の OS 環境で動作確認をしています。
![]() |
Fedora Workstation 39 | x86_64 |
Python | 3.12.1 | |
PySide6 | 6.6.1 |
サンプルを下記に示しました。
このサンプルを実行すると、ツールバーを持った QMainWindow クラスのインスタンスが表示されます。ツールバー上の右側にある Apply ボタンをクリックすると QCalendarWidget クラスのインスタンス(カレンダーと呼びます)が表示されます。ツールバー上の左側にある DateEntry クラスのインスタンスに日付が表示されていればその日付が、そうでなければ本日の日付が選択状態(青色)になります。
マウスでカレンダー上の日付を選択してダブルクリックすると、カレンダーが閉じられます。その際、カレンダーは選択された日付を QDate のインスタンスで返します。
返された日付は、ツールバーの左側にある DateEntry クラスのインスタンス上に表示されます。DateEntry は QLineEidt を継承したクラスで、setDate メソッドで渡された QDate の日付情報をそのままインスタンスで保持し、yyyy-mm-dd の文字列に整形して表示します。
参考サイト

にほんブログ村
#オープンソース


0 件のコメント:
コメントを投稿