import tkinter as tk
from tkinter import messagebox
def submit_feedback():
name = entry_name.get()
room = entry_room.get()
food_quality = food_quality_var.get()
service = service_var.get()
cleanliness = cleanliness_var.get()
comments = text_comments.get("1.0", tk.END).strip()
if not name or not room:
messagebox.showwarning("Input Error", "Please fill in Name and Room No.")
return
summary = f"""Feedback Submitted Successfully!
Name: {name}
Room No: {room}
Food Quality: {food_quality}
Service: {"Good" if service else "Not Good"}
Cleanliness: {"Clean" if cleanliness else "Not Clean"}
Comments: {comments}
"""
messagebox.showinfo("Feedback Received", summary)
root = tk.Tk()
root.title("Customer Feedback Form")
root.geometry("400x500")
# Title label spanning two columns
tk.Label(root, text="Customer Feedback Form", font=("Arial", 16, "bold")) \\
.grid(row=0, column=0, columnspan=2, pady=10)
# Name
tk.Label(root, text="Name:").grid(row=1, column=0, sticky="w", padx=30, pady=5)
entry_name = tk.Entry(root, width=30)
entry_name.grid(row=1, column=1, padx=30, pady=5)
# Room No
tk.Label(root, text="Room No:").grid(row=2, column=0, sticky="w", padx=30, pady=5)
entry_room = tk.Entry(root, width=30)
entry_room.grid(row=2, column=1, padx=30, pady=5)
# Food Quality Radio Buttons
tk.Label(root, text="Rate Food Quality:").grid(row=3, column=0, sticky="w", padx=30, pady=5)
food_quality_var = tk.StringVar(value="Good")
qualities = ["Excellent", "Good", "Average", "Poor"]
for i, quality in enumerate(qualities):
tk.Radiobutton(root, text=quality, variable=food_quality_var, value=quality) \\
.grid(row=3+i, column=1, sticky="w", padx=50)
# Service and Cleanliness Checkbuttons (placed vertically)
tk.Label(root, text="Service and Cleanliness:").grid(row=7, column=0, sticky="w", padx=30, pady=(10, 0))
service_var = tk.BooleanVar()
cleanliness_var = tk.BooleanVar()
tk.Checkbutton(root, text="Good Service", variable=service_var) \\
.grid(row=7, column=1, sticky="w", padx=50)
tk.Checkbutton(root, text="Clean Environment", variable=cleanliness_var) \\
.grid(row=8, column=1, sticky="w", padx=50)
# Additional Comments Textbox spanning two columns
tk.Label(root, text="Additional Comments:").grid(row=9, column=0, sticky="w", padx=30, pady=(10, 0))
text_comments = tk.Text(root, width=30, height=5)
text_comments.grid(row=10, column=0, columnspan=2, padx=30, pady=5)
# Submit Button spanning two columns and centered
tk.Button(root, text="Submit Feedback", command=submit_feedback) \\
.grid(row=11, column=0, columnspan=2, pady=20)
root.mainloop()