【Python】Tkinterで作る平均速度計算機の実装方法
はじめに
この記事では、Pythonの標準GUIライブラリ「Tkinter」を使用して、移動物体の平均速度を計算するデスクトップアプリケーションを作成する方法を解説します。平均速度は、以下の式から求めることができます。
平均速度 = 距離 ÷ [時間(時)+(分 ÷ 60)]
入力値の選択には、指定した範囲の値に対してスピナー(上下ボタン付きの数値入力欄)を作成できる SpinBox ウィジェットを使用します。今回入力する項目は、「距離(キロメートル)」「時間(時)」「分」の3つです。
コード例
from tkinter import *
# tkinterフレームのインスタンスを作成
win = Tk()
# ウィンドウサイズを設定し、リサイズを無効化
win.geometry("700x400")
win.resizable(0, 0)
win.title("Average Speed Calculator")
# メインウィンドウのタイトル用ラベルを作成
Label(win, text="Average Speed Calculator", font=("Times New Roman", 18, "bold"), fg="black").pack()
# 平均速度を計算する関数
def average_cal():
# 時間(時)
hrs = int(hours.get())
# 時間(分)
mins = int(minutes.get())
# 距離
dist = int(distance.get())
# 計算式:平均速度 = 距離 ÷(時 + 分/60)
avg = dist / (hrs + (mins / 60))
# configメソッドでラベルのテキストを更新
average_speed.config(text=f"{avg} Km/Hr")
# 複数のフレームを作成
frame = Frame(win)
frame.pack()
frame1 = Frame(win)
frame1.pack()
frame2 = Frame(win)
frame2.pack()
# ラベルとスピンボックスを作成
Label(frame, text="Hours", width=15, font=("Times New Roman", 12, "bold"), borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
hours = Spinbox(frame, from_=0, to=1000000, width=5, font=("Times New Roman", 12, "bold"))
hours.pack(side=LEFT, pady=10)
Label(frame1, text="Minutes", width=15, font=("Times New Roman", 12, "bold"), borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
minutes = Spinbox(frame1, from_=0, to=10000000, width=5, font=("Times New Roman", 12, "bold"))
minutes.pack(side=LEFT, pady=10)
Label(frame2, text="Distance in(Km)", width=15, font=("Times New Roman", 12, "bold"), borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
distance = Spinbox(frame2, from_=0, to=1000000, width=5, font=("Times New Roman", 12, "bold"))
distance.pack(side=LEFT, pady=10)
# 計算実行ボタンを作成
Button(win, text="Average Speed is:", width=15, font=("Times New Roman", 12, "bold"), command=average_cal, fg="white", bg="black").pack(pady=20)
average_speed = Label(win, text="", width=50, font=("Times New Roman", 12, "bold"), relief="solid")
average_speed.pack()
# アプリケーションを実行
win.mainloop()
コードのポイント
- Spinboxウィジェット:
from_とtoパラメータで値の範囲を指定することで、ユーザーがスピナー操作で数値を簡単に入力できます。 - Frameウィジェット: 「時」「分」「距離」の各行を個別のフレームに配置することで、整然としたレイアウトを実現しています。
- config()メソッド: 計算ボタンが押されたタイミングで、結果表示用ラベルのテキストを動的に更新します。
- 平均速度の計算: 「分」は60で割って「時」単位に変換したうえで合計時間を求め、距離をその値で割ることで平均速度(km/h)を算出しています。
実行結果
上記のコードを実行すると、次のような平均速度計算機のウィンドウが作成され、表示されます。「Hours」「Minutes」「Distance」にそれぞれ数値を設定し、「Average Speed is:」ボタンをクリックすると、計算された平均速度が画面下部のラベルに表示されます。

-
PythonとTkinterで作る!初心者向けシンプルGUI計算機の作り方
このチュートリアルでは、Pythonの標準モジュールTkinterを使用して、シンプルなGUI計算機を作成します。TkinterはPythonに組み込まれているGUIアプリケーション開発用のモジュールで、追加インストールが不要で手軽に使えるのが魅力です。GUIアプリケーションを活用すれば、データや計算結果を視覚的にわかりやすく操作できます。 それでは、シンプルなGUI計算機の作り方を見ていきましょう。 作成の手順 Tkinterからすべての機能を「*」でインポートします。 計算機のインターフェース(ウィンドウ)を作成します。 入力フィールドに数字を入力する関数(input_number)を作
-
【Python】Tkinterで作るカラーゲーム – 30秒で文字の色を当てるGUIゲーム開発
GUIアプリケーションの開発において、Pythonの標準ライブラリ「Tkinter」は非常に人気が高く、初心者でも扱いやすいツールです。追加のインストール作業なしに使えるため、Tkinterを活用すればシンプルなGUIゲームでも手軽に開発できます。 この記事では、Tkinterを使った「カラーゲーム」の作り方を紹介します。このゲームでは、画面に表示される単語の文字色をプレイヤーが入力し、正解するたびにスコアが1点ずつ加算されます。制限時間は30秒で、使用される色は赤(Red)、青(Blue)、緑(Green)、ピンク(Pink)、黒(Black)、黄(Yellow)、オレンジ(Orange)、