Open In App

Average Speed Calculator – Tkinter

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Python GUI – tkinter

Python offers multiple options for developing GUI (Graphical User Interface). Out of all the GUI methods, tkinter is the most commonly used method. It is a standard Python interface to the Tk GUI toolkit shipped with Python. In this article we will discuss how we can create an average speed calculator using Tkinter.

The idea here is to get time and distance as inputs from the user using tkinter window, then on click of a button the calculated average speed will be displayed to the user.

Formula Used:

Average Speed = Distance/(Hours+(Minutes/60))

Examples:

Input:

hours = 10

minutes = 20

distance = 200

Output:

Average speed = 19.35

Approach:

  • Import module
  • Create object
  • Create windows and frames
  • Create button to take input values
  • Convert minutes into hours, by dividing minutes by 60
  • Then add converted hours value into hours
  • Divide Total distance value by Total hours value
  • Display the value so obtained
  • Execute code

Below is the implementation:

Python3

# Import Module
from tkinter import *
 
# Create Object
root = Tk()
 
# Set height and width
width = 450
height = 300
 
# Set Geometry and min, max size
root.geometry(f"{width}x{height}")
root.maxsize(width, height)
root.minsize(width, height)
 
# Create Label
Label(root, text="Average Speed Calculator", font=(
    "Helvetica", 18, "bold"), fg="blue").pack()
 
# Calculate Average Speed
 
 
def average_speed_calculator():
        # Get the value of spinbox using get() method
        # Hours
    hrs = int(hours.get())
    # minutes
    mins = int(minutes.get())
    # distance
    dist = int(distance.get())
 
    # Formula Used
    value = dist/(hrs+(mins/60))
 
    # change the text of label using config method
    average_speed.config(text=f"{value} Km/Hr")
 
 
# Create Multiple Frames
frame = Frame(root)
frame.pack()
 
frame1 = Frame(root)
frame1.pack()
 
frame2 = Frame(root)
frame2.pack()
 
# Create Labels and Spin Boxes
Label(frame, text="Hours", width=15, font=("Helvetica", 14, "bold"),
      borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
hours = Spinbox(frame, from_=0, to=10000000, width=5,
                font=("Helvetica", 14, "bold"))
hours.pack(side=LEFT, pady=10)
 
Label(frame1, text="Minutes", width=15, font=("Helvetica", 14, "bold"),
      borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
minutes = Spinbox(frame1, from_=0, to=10000000, width=5,
                  font=("Helvetica", 14, "bold"))
minutes.pack(side=LEFT, pady=10)
 
Label(frame2, text="Distance (Km)", width=15, font=("Helvetica", 14, "bold"),
      borderwidth=2, relief="solid").pack(side=LEFT, padx=10, pady=10)
distance = Spinbox(frame2, from_=0, to=10000000, width=5,
                   font=("Helvetica", 14, "bold"))
distance.pack(side=LEFT, pady=10)
 
Button(root, text="Average Speed", width=15, font=("Helvetica", 14, "bold"),
       command=average_speed_calculator, fg="red", bg="black").pack(pady=20)
average_speed = Label(root, text="", width=20, font=(
    "Helvetica", 14, "bold"), relief="solid")
average_speed.pack()
 
# Execute Tkinter
root.mainloop()

                    

Output:



Last Updated : 21 Oct, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads