import tkinter as tk
class SoilFertilizerCalculator:
def __init__(self, master):
self.master = master
master.title("Soil and Fertilizer Calculator")
# Create input fields for length, width, and depth
self.length_label = tk.Label(master, text="Length (ft):")
self.length_label.grid(row=0, column=0)
self.length_entry = tk.Entry(master)
self.length_entry.grid(row=0, column=1)
self.width_label = tk.Label(master, text="Width (ft):")
self.width_label.grid(row=1, column=0)
self.width_entry = tk.Entry(master)
self.width_entry.grid(row=1, column=1)
self.depth_label = tk.Label(master, text="Depth (inches):")
self.depth_label.grid(row=2, column=0)
self.depth_entry = tk.Entry(master)
self.depth_entry.grid(row=2, column=1)
self.nitrogen_label = tk.Label(master, text="Nitrogen content (%):")
self.nitrogen_label.grid(row=3, column=0)
self.nitrogen_entry = tk.Entry(master)
self.nitrogen_entry.grid(row=3, column=1)
# Create a button to calculate the soil volume and fertilizer needed
self.calculate_button = tk.Button(master, text="Calculate", command=self.calculate, bg="coral")
self.calculate_button.grid(row=4, column=0, columnspan=2)
# Create a label to display the soil volume result in square yards
self.soil_result_label = tk.Label(master, text="", fg="coral")
self.soil_result_label.grid(row=5, column=0, columnspan=2)
# Create a label to display the fertilizer needed result in pounds
self.fertilizer_result_label = tk.Label(master, text="", fg="light brown")
self.fertilizer_result_label.grid(row=6, column=0, columnspan=2)
def calculate(self):
# Get the values from the input fields and convert to floats
length = float(self.length_entry.get())
width = float(self.width_entry.get())
depth = float(self.depth_entry.get())
nitrogen = float(self.nitrogen_entry.get())
# Calculate the soil volume in cubic feet and convert to square yards
volume = length * width * depth / 27.0
area = volume * 27.0 / 9.0
# Calculate the fertilizer needed in pounds
fertilizer = area * nitrogen * 0.003
# Display the results in the labels
self.soil_result_label.configure(text=f"Soil volume: {area:.2f} square yards")
self.fertilizer_result_label.configure(text=f"Fertilizer needed: {fertilizer:.2f} pounds")
root = tk.Tk()
my_gui = SoilFertilizerCalculator(root)
root.mainloop()