import tkinter as tk
from tkinter import messagebox
def book_cab():
name = entry_name.get()
pickup = entry_pickup.get()
drop = entry_drop.get()
cab_type = cab_var.get()
agree = agree_var.get()
if not name or not pickup or not drop:
messagebox.showwarning("Missing Info", "Please fill all details.")
elif not agree:
messagebox.showwarning("Terms Required", "You must agree to the booking terms.")
else:
messagebox.showinfo("Booking Confirmed",
f"Booking Successful!\\n\\nName: {name}\\nPickup: {pickup}\\nDrop: {drop}\\nCab Type: {cab_type}")
root = tk.Tk()
root.title("Cab/Auto Booking App")
root.geometry("400x450")
# Heading label spanning two columns
tk.Label(root, text="π Cab/Auto Booking App", font=("Arial", 14, "bold")) \\
.grid(row=0, column=0, columnspan=2, pady=10)
# Passenger Name
tk.Label(root, text="Passenger Name:").grid(row=1, column=0, sticky="w", padx=40, pady=5)
entry_name = tk.Entry(root, width=30)
entry_name.grid(row=1, column=1, padx=40, pady=5)
# Pickup Location
tk.Label(root, text="Pickup Location:").grid(row=2, column=0, sticky="w", padx=40, pady=5)
entry_pickup = tk.Entry(root, width=30)
entry_pickup.grid(row=2, column=1, padx=40, pady=5)
# Drop Location
tk.Label(root, text="Drop Location:").grid(row=3, column=0, sticky="w", padx=40, pady=5)
entry_drop = tk.Entry(root, width=30)
entry_drop.grid(row=3, column=1, padx=40, pady=5)
# Cab Type Radio Buttons
tk.Label(root, text="Select Cab Type:").grid(row=4, column=0, sticky="w", padx=40, pady=(10, 0))
cab_var = tk.StringVar(value="Auto")
tk.Radiobutton(root, text="Auto", variable=cab_var, value="Auto") \\
.grid(row=4, column=1, sticky="w", padx=60)
tk.Radiobutton(root, text="Mini Cab", variable=cab_var, value="Mini Cab") \\
.grid(row=5, column=1, sticky="w", padx=60)
tk.Radiobutton(root, text="Sedan", variable=cab_var, value="Sedan") \\
.grid(row=6, column=1, sticky="w", padx=60)
tk.Radiobutton(root, text="SUV", variable=cab_var, value="SUV") \\
.grid(row=7, column=1, sticky="w", padx=60)
# Terms Checkbox spanning two columns
agree_var = tk.BooleanVar()
tk.Checkbutton(root, text="I agree to the booking terms", variable=agree_var) \\
.grid(row=8, column=0, columnspan=2, sticky="w", padx=40, pady=10)
# Book Button spanning two columns
tk.Button(root, text="Book Ride", command=book_cab) \\
.grid(row=9, column=0, columnspan=2, pady=15)
root.mainloop()