2023-07-16

PySide6 と Matplotlib

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。配布ライセンスは LGPL で公開されています(商用ライセンスも有り)。最新のバージョンは Qt6 に対応した PySide6(記事執筆時点で 6.5.1.1)です。

PySide6 の GUI アプリで Matplotlib のプロットを扱うとき、確実に削除できるようにすることを意識しすぎてしまいます。

なぜか?それはプロットする度に新しいインスタンスを作成していたからです。インスタンスを再利用してプロットし直す、という考えが無かったのでした。ということで、今さらですが、プロットを更新するサンプルを作成しました。

下記の OS 環境で動作確認をしました。

Fedora Linux 38 (Server Edition) x86_64
python3.11 python3-3.11.4-1.fc38.x86_64
PySide6 6.5.1.1

以下のサンプルでは、matplotlib のプロットで日本語フォントを表示するために fonts フォルダーに RictyDiminished-Regular.ttf [2] を保存して利用しています。

また、Matplotlib のプロットの更新については、参考サイト [3] の内容を参考にさせていただきました。

qt_matplotlib_update.py

ツールバーの更新ボタンをクリックすると、プロットが更新されます。

実行例

参考サイト

  1. How to clear the memory completely of all Matplotlib plots
  2. edihbrandon/RictyDiminished: Ricty Diminished --- fonts for programming
  3. Matplotlib plots in PySide6, embedding charts in your GUI applications

 

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

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



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

0 件のコメント: