Python
 Computer >> コンピューター >  >> プログラミング >> Python

【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で作る平均速度計算機の実装方法

  1. PythonとTkinterで作る!初心者向けシンプルGUI計算機の作り方

    このチュートリアルでは、Pythonの標準モジュールTkinterを使用して、シンプルなGUI計算機を作成します。TkinterはPythonに組み込まれているGUIアプリケーション開発用のモジュールで、追加インストールが不要で手軽に使えるのが魅力です。GUIアプリケーションを活用すれば、データや計算結果を視覚的にわかりやすく操作できます。 それでは、シンプルなGUI計算機の作り方を見ていきましょう。 作成の手順 Tkinterからすべての機能を「*」でインポートします。 計算機のインターフェース(ウィンドウ)を作成します。 入力フィールドに数字を入力する関数(input_number)を作

  2. 【Python】Tkinterで作るカラーゲーム – 30秒で文字の色を当てるGUIゲーム開発

    GUIアプリケーションの開発において、Pythonの標準ライブラリ「Tkinter」は非常に人気が高く、初心者でも扱いやすいツールです。追加のインストール作業なしに使えるため、Tkinterを活用すればシンプルなGUIゲームでも手軽に開発できます。 この記事では、Tkinterを使った「カラーゲーム」の作り方を紹介します。このゲームでは、画面に表示される単語の文字色をプレイヤーが入力し、正解するたびにスコアが1点ずつ加算されます。制限時間は30秒で、使用される色は赤(Red)、青(Blue)、緑(Green)、ピンク(Pink)、黒(Black)、黄(Yellow)、オレンジ(Orange)、