import tkinter as tk
from tkinter import messagebox
def submit():
# Retrieve data from widgets
name = name_entry.get()
age = age_entry.get()
gender = gender_var.get()
newsletter = newsletter_var.get()
# Validate data
if not name:
messagebox.showerror("Error", "Please enter your full name.")
return
try:
age_value = int(age)
if age_value < 1 or age_value > 120:
raise ValueError
except ValueError:
messagebox.showerror("Error", "Please enter a valid age (1-120).")
return
# Display or save the data (for now, just display using a messagebox)
message = f"Name: {name}\nAge: {age}\nGender: {gender}\nSubscribe to Newsletter:
{'Yes' if newsletter else 'No'}"
messagebox.showinfo("Information Collected", message)
# Create the main window
root = tk.Tk()
root.title("Personal Information Collector")
root.geometry("400x400")
# Add label and entry for Full Name
name_label = tk.Label(root, text="Full Name:")
name_label.pack(pady=10)
name_entry = tk.Entry(root)
name_entry.pack(pady=10)
# Add label and entry for Age
age_label = tk.Label(root, text="Age:")
age_label.pack(pady=10)
age_entry = tk.Entry(root)
age_entry.pack(pady=10)
# Add Radio buttons for Gender
gender_label = tk.Label(root, text="Gender:")
gender_label.pack(pady=10)
gender_var = tk.StringVar(value="Male")
male_rb = tk.Radiobutton(root, text="Male", variable=gender_var, value="Male")
male_rb.pack(anchor='w')
female_rb = tk.Radiobutton(root, text="Female", variable=gender_var, value="Female")
female_rb.pack(anchor='w')
other_rb = tk.Radiobutton(root, text="Other", variable=gender_var, value="Other")
other_rb.pack(anchor='w')
# Add Checkbox for Newsletter Subscription
newsletter_var = tk.BooleanVar()
newsletter_cb = tk.Checkbutton(root, text="Subscribe to Newsletter",
variable=newsletter_var)
newsletter_cb.pack(pady=10)
# Add Submit button
submit_btn = tk.Button(root, text="Submit", command=submit)
submit_btn.pack(pady=20)
# Start the GUI loop
root.mainloop()