ブログ以前やりましたが、今度はtkinterでBMIを計算してみます。JavaScriptでBMIを計算BMIとは1994年にWHOで定めた肥満判定の国際基準です。体重と身長の関係から算出される、人の肥満度を表す体格指数です。https://www.ac-illust.com/画面レイアウトウィンドウにFrameウィジェットをpackで配置し、そのFrameの中に色々なウィジェットをgridで配置しています。Entryウィジェットの利用と、Labelウィジェットに画像を表示する方法は初めてですので後述します。4.pngソースコード今回はFrameウィジェットを継承したクラスを使用して書きました。f"あなたのBMIは{bmi}です。\n{result}です。\n適正体重は{right_weight}kgです。f"あなたのBMIは{bmi}です。\n{result}です。\n適正体重は{right_weight}kgです。mainloopメソッドでメインループを呼び出しイベントを待つroot.mainloop()146行目でTkクラスをインスタンス化して、148行目でウィンドウのタイトルを指定し、150行目でフォントを指定し、152行目でAppクラスをインスタンス化し、154行目のmainloopメソッドでメインループを呼び出しイベントを待ちます。App(Frame):でtkinterのFrameクラスを継承してAppクラスを定義します。Frameウィジェットは、それ自体は見えないウィジェットですが、その中に他のウィジェットを配置して使います(HTMLのdivタグみたいなもの)。13行目でFrameクラスのコンストラクタを呼び、17行目で自らをpackで配置します。packでの配置は、言葉では説明しづらいのですが、標準では縦中央に配置します。packの次にまたpackすると、その下に配置されます。オプションで左よせ、右よせ、上よせ、下よせなどができます。34行目でEntryウィジェットが出てきます。type=”text”みたいなもの)。複数行テキスト入力の場合はTextウィジェットを使います。focusメソッドでEntryウィジェットにフォーカスを当てます。focusはfocus_setの別名ですのでfocus_set()を使用しても同じです。self.calc)とは、Enterキーを押すイベントと、メソッドのcalcを呼ぶことをバインド(縛る)します。Enterキーを押すとメソッドcalcを呼びます。イベントには下の他にも色々あります。Ctrlキーとfキーが押されたなどなど56行目。command=self.calcでボタンが押された時にcalcメソッドを実行します。22行目で定義したStringVarの変数をLabelの内容に関連付けます。PhotoImageオブジェクトを作成。LabelにPhotoImageオブジェクトを表示する。jpg画像は別の方法でないと表示できません(PILを使用)。計算ボタンが押されるか、Enterボタンが押された時に発動するメソッド。Entryの内容を取得するのはget()メソッド。