【PyFMI】最小構成のMBD事例 第2章 その110【リアルタイム描画④】

【PyFMI】最小構成のMBD事例 第2章 その110【リアルタイム描画④】 事例
【PyFMI】最小構成のMBD事例 第2章 その110【リアルタイム描画④】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回は、大雑把なGUI構成と必要な機能を決めたところ。
チェックボックスを配置して各機能の有効/無効、Scale(スライダー)による指定値の手動入力など。

今回はtkinterについて触れていく。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

tkinterをインストールしてみる?

太郎くん
太郎くん

折角だからtkinterのインストールをしてしまいたいな。
いざ作ろうと思ったら「実は動きません」じゃ困るし。

フクさん
フクさん

たぶんすでに入ってるよ。

太郎くん
太郎くん

え?そうなの?

フクさん
フクさん

tkinterはPythonの標準ライブラリにカテゴライズされているようで、
最初から組み込まれてるんだ。
まぁこれが今回tkinterを選定した理由の一つでもある。

太郎くん
太郎くん

ということは、動作確認するだけってことか。

tkinterの動作確認

太郎くん
太郎くん

しかし、動作確認となると、
tkinterの使い方を覚えて、コーディングしていかないといけないのか・・・。
自分で言っておいてなんだけど、面倒だな。

フクさん
フクさん

動作確認だけだったらコーディングの必要はない。
以下のコマンドを実行。

python -m tkinter
太郎くん
太郎くん

あ、なんかウィンドウっぽいのが出てきた!

tkinter動作確認、python -m tkinter、This is Tcl/Tk version8.6、This should be a cedilla
フクさん
フクさん

ふむ。
問題無く使えそうだな。

太郎くん
太郎くん

なるほど。
これで動けばおおよそ動くよってことか。

フクさん
フクさん

動作確認としてはこれ以上ないレベルで手っ取り早い。

tkinterによるGUI作成方針

フクさん
フクさん

tkinterはメインのウィンドウをrootとして、
そこに紐づける形でウィジットを生成していくイメージ。

太郎くん
太郎くん

ほう。
ということはまずはrootってのを定義すれば良いのか。

フクさん
フクさん

そして、matplotlibの埋め込みはちょっと特殊な手順があって、
FigureCanvasTkAggというモジュールを使う。
そしてmatplotlibにメニューバーがあったと思うのだけど、
これもNavigationToolbar2Tkというモジュールを使う事で同一のものをtkinter上に配置可能だ。

太郎くん
太郎くん

割と機能使いまわし用のモジュールが準備されてるってことか。

フクさん
フクさん

こういうのもあって、割とGUIの作成の難度は低めになってる感じだね。

フクさん
フクさん

あとはチェックボックス、Scaleを生成&配置していけばGUI作成としてはおおよそOKだ。
まぁ実際にGUI操作の結果をどう取得するかの話もあるが、
これはやりながら確認していこう。

太郎くん
太郎くん

となると、そろそろ実際にtkinterを触っていく感じになるのか。

まとめ

フクさん
フクさん

まとめだよ。

  • tkinterはPython標準ライブラリのためインストール済み。
  • 動作確認。
    • 「python -m tkinter」でウィンドウが出てくればとりあえずOK。
  • メインウィンドウをrootとして定義し、そこに各ウィジットを生成&紐づけしていく。
    • matplotlib関連もtkinter連携用モジュールが存在する。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました