バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はFigureCanvasTkAggとNavigationToolbar2Tkを使用して
matplotlibを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
次のウィジットは?
次は何を配置する?
まぁチェックボックス関連かなー。
確か5個くらいあったよね・・・。
まぁ数は大した問題ではないな。
5個分コピペして必要なとこだけ書き換えればOKだ。
いや、まぁそうなんだろうけど。
チェックボックスの配置
まずは1個配置してみよう。
そうだね。
それで一回どんな感じになるのかは確認しておきたい。
以下のコードになる。
scalbln = tkinter.BooleanVar()
scalbln.set(True)
chk = tkinter.Checkbutton(root, variable=scalbln, text="Enable Scale bar")
chk.place(x=0, y=10)
お、確かにチェックボックスが増えた!
チェックボックス追加についての解説
コード上の確認だけど、
scalbln = tkinter.BooleanVar()
ってのはなに?
チェックボックスのON/OFFを受け取るための変数を作成してるんだよ。
なるほど。
それで、3行目のCheckbuttonに渡してるのか。
つまりscalblnを参照すればチェック状態が分かると。
scalbln.set(True)
ってのはチェック状態を指定してるのかな?
この場合だとチェックが入ってる状態になるのだと思うのだけど。
そのとおり。
最後のplaceは座標指定で配置してるやつだね。
一気にチェックボックス群を配置
というわけで、残りのチェックボックスも配置してしまおう。
cpuloadbln = tkinter.BooleanVar()
cpuloadbln.set(False)
chk = tkinter.Checkbutton(root, variable=cpuloadbln, text="Enable Cpu Load")
chk.place(x=0, y=30)
pausebln = tkinter.BooleanVar()
pausebln.set(False)
chk = tkinter.Checkbutton(root, variable=pausebln, text="pause")
chk.place(x=0, y=50)
sinbln = tkinter.BooleanVar()
sinbln.set(False)
chk = tkinter.Checkbutton(root, variable=sinbln, text="sin wave")
chk.place(x=0, y=70)
sawtoothbln = tkinter.BooleanVar()
sawtoothbln.set(False)
chk = tkinter.Checkbutton(root, variable=sawtoothbln, text="Sawtooth wave")
chk.place(x=0, y=90)
一応GUI側も確認
着実に強化されて行ってる感が良いねー。
まとめ
まとめだよ。
- チェックボックスの配置。
- チェック状態を確認するための変数を用意し、ウィジット生成時に渡しておく。
- この変数を見ればチェック状態が分かる。
- チェック状態をPython側から変更することも可能。
- placeで座標指定して配置。
- チェック状態を確認するための変数を用意し、ウィジット生成時に渡しておく。
- 同様の処理を必要なチェックボックス分実施。
- GUI上でも設置されていることを確認。
バックナンバーはこちら。
コメント