|
テーマ:パソコンを楽しむ♪(3589)
カテゴリ:Python
# -*- coding: utf-8 -*- """ Created on Tue Mar 7 10:28:38 2023 @author: mlupi """ """ 『日経ソフトウエア』2022年09月号(p.024~p.040)の特集記事 「特集2 Pythonでデスクトップアプリを作ろう 前編」に挑戦中。 なお、基礎については、当ブログの「Pythonことはじめ」などを参照してください。 """ # 「Pythonでデスクトップアプリを作ろう 前編」 その13 # 目次 # Part2 「BMI計算機」を作ろう(p.029~p.033) # ③ BMI計算機のデスクトップアプリを作る(p.032~p.033) # # 『日経ソフトウエア』2022年09月号(p.024~p.040) # # 目次 # # Part1 TkInterの基本をマスターしよう(p.024~p.028) # ① ウィジェットとウィジェットの親子関係(p.024~p.026) # ② イベント駆動型のプログラミング(p.026~p.027) # ③ ウィジェットの配置(p.027~p.028) # Part2 「BMI計算機」を作ろう(p.029~p.033) # ① Buttonウィジェットの使い方(p.029) # ② grid関数でウィジェットを格子状に配置する(p.030~p.032) # ③ BMI計算機のデスクトップアプリを作る(p.032~p.033) # Part3 「割り勘計算機」アプリを作ろう(p.034~p.037) # ① 2つの画面を切り替える(p.034~p.035) # ② Comboboxウィジェットを使う(p.035~p.036) # ③ 割り勘計算機のデスクトップアプリを作る(p.036~p.037) # Part4 「4択クイズ」アプリを作ろう(p.037~p.040) # ① Radiobuttonウィジェットを使う(p.038~p.039) # ② CSVファイルを読み込む(p.039) # ③ 4択クイズのデスクトップアプリを作る(p.039~p.040) # Part2 「BMI計算機」を作ろう(p.029~p.033) # ① Buttonウィジェットの使い方(p.029) # ② grid関数でウィジェットを格子状に配置する(p.030~p.032) # ③ BMI計算機のデスクトップアプリを作る(p.032~p.033) #========== リスト7●「bmi.py」 # 「Grid関数」のテストプログラム。 # 「grid関数」の「rowspan」オプション、「columnspan」オプション # を使って、格子を結合する。(p.031~p.032) # GUIライブラリーの「Tkinter」モジュールを、「tk」という名前でインポートする。 import tkinter as tk # BMI計算関数 def calc(weight, height): return weight / (height**2) # 肥満度判定関数 def check(bmi): if bmi < 18.5: result = '低体重' elif bmi < 25.0: result = '普通体重' elif bmi < 30.0: result = '肥満度1' elif bmi < 35.0: result = '肥満度2' elif bmi < 40.0: result = '肥満度3' else: result = '肥満度4' return result # 「Tk」関数を使って、ウインドウ(トップレベルtkウイジェット)を生成し、 「root」という名前を付ける # 「Tk」関数は、「Tk」クラスから、ウインドウ(トップレベルtkウイジェット)を生成するための関数。 root = tk.Tk() # ウインドウの表示タイトルを「ボタンテスト」にする。 root.title('肥満度チェック') # ウインドウの中身の大きさを指定 # ウインドウの中身(タイトルバーなどを除いた内部)の大きさを「geometry」関数で指定する。 # ('300x150')は、横サイズ=300ピクセル、縦サイズ=150ピクセルを表している root.geometry('250x150') # 「labelウイジェット」の生成 label_1 = tk.Label(root, text='体重') label_2 = tk.Label(root, text='kg') label_3 = tk.Label(root, text='身長') label_4 = tk.Label(root, text='cm') label_5 = tk.Label(root, text='身長と体重を入力してください。') # 「Entryウイジェット」の生成 weight = tk.Entry(width=5) height = tk.Entry(width=5) # Buttonのハンドラ関数 def judgment(): w = float(weight.get()) h = float(height.get()) / 100 s = check(calc(w, h)) label_5['text'] = '肥満度:' + str(s) # Buttonウイジェットの生成 button = tk.Button(root, text='BMI判定', command=judgment) # 各列の割合を指定 root.columnconfigure(0, weight=1) root.columnconfigure(1, weight=1) root.columnconfigure(2, weight=1) # 各行の割合を指定 root.rowconfigure(0, weight=1) root.rowconfigure(1, weight=1) root.rowconfigure(2, weight=1) root.rowconfigure(3, weight=1) # 「grid関数」でウイジェットを配置 # 「grid関数」の「rowspan」オプション、「columnspan」オプション # を使って、格子を結合する。(p.031~p.032) label_1.grid(column=0, row=0, sticky=tk.E) weight.grid(column=1, row=0) label_2.grid(column=2, row=0, sticky=tk.W) label_3.grid(column=0, row=1, sticky=tk.E) height.grid(column=1, row=1) label_4.grid(column=2, row=1, sticky=tk.W) button.grid(column=0, row=2, columnspan=3) label_5.grid(column=0, row=3, columnspan=3) # ウインドウを表示して、「メインループ」に入る。 # 「mainloop(メインループ)」は、「イベントループ」で、ウインドウで発生する # 「イベント」を待っている状態のループ。 root.mainloop() #========== リスト7●「bmi.py」は、ここまで
リスト7●「bmi.py」の実行結果 お気に入りの記事を「いいね!」で応援しよう
最終更新日
2023.03.10 10:58:53
コメント(0) | コメントを書く
[Python] カテゴリの最新記事
|