pinterest-site-verification=f733925c88b2d69d81e4298adc53ac40
import tkinter as tk
from tkinter import messagebox
import requests
FORMSPREE_ENDPOINT = 'https://formspree.io/f/xlekqpdy'
class App:
def __init__(self):
self.selected_options = {}
self.window = tk.Tk() # Create the main window
self.create_labels() # Create labels
self.create_buttons() # Create buttons
self.create_email_entry() # Create email entry field
self.create_submit_button() # Create submit button
def create_labels(self):
labels = ["Dress Type", "Size", "Color", "Sleeve Type", "Fabric Type", "Lace", "Beading", "Train Length"]
for label_text in labels:
label = tk.Label(self.window, text=label_text + ":")
label.pack()
def create_buttons(self):
button_data = [
{
"name": "Dress Type",
"options": ['Mermaid', 'Ball Gown', 'Sheath'], # Replace with actual wedding dress types
},
{
"name": "Size",
"options": ['S', 'M', 'L'], # Replace with your own sizes
},
{
"name": "Color",
"options": ['Red', 'Blue', 'Green'], # Replace with your own colors
},
{
"name": "Sleeve Type",
"options": ['Short Sleeve', 'Long Sleeve', 'Sleeveless'], # Replace with actual sleeve types
},
{
"name": "Fabric Type",
"options": ['Silk', 'Lace', 'Tulle'], # Replace with actual fabric types
},
{
"name": "Lace",
"options": ['With Lace', 'Without Lace'], # Replace with actual lace options
},
{
"name": "Beading",
"options": ['With Beading', 'Without Beading'], # Replace with actual beading options
},
{
"name": "Train Length",
"options": ['Short', 'Medium', 'Long'], # Replace with actual train lengths
}
]
for button_info in button_data:
frame = tk.Frame(self.window)
frame.pack()
label = tk.Label(frame, text=button_info["name"] + ":")
label.pack(side=tk.LEFT)
buttons = {}
for option in button_info["options"]:
button = tk.Button(
frame,
text=option,
command=lambda opt=option, btns=buttons, cat=button_info["name"]: self.on_button_selected(cat, opt, btns)
)
button.pack(side=tk.LEFT)
buttons[option] = button
self.selected_options[button_info["name"]] = None
def create_email_entry(self):
email_label = tk.Label(self.window, text="Email:")
email_label.pack()
self.email_entry = tk.Entry(self.window)
self.email_entry.pack()
def create_submit_button(self):
submit_button = tk.Button(self.window, text="Submit", command=self.submit_form)
submit_button.pack()
def on_button_selected(self, category, option, buttons):
self.selected_options[category] = option
for btn in buttons.values():
btn.config(relief=tk.RAISED)
buttons[option].config(relief=tk.SUNKEN)
def submit_form(self):
selected_options = list(self.selected_options.values())
email = self.email_entry.get()
if None in selected_options or not email:
messagebox.showerror("Error", "Please select all options and enter your email.")
return
self.send_email_to_formspree(selected_options, email)
def send_email_to_formspree(self, user_choices, email):
form_data = {
'email': email,
'choices': str(user_choices) # Convert the choices to a string
}
try:
response = requests.post(FORMSPREE_ENDPOINT, data=form_data)
response.raise_for_status()
messagebox.showinfo("Success", "Form submitted successfully!")
self.clear_selections()
except requests.exceptions.RequestException as e:
print("Error:", e)
messagebox.showerror("Error", "Failed to submit form.")
def clear_selections(self):
self.selected_options = {}
self.email_entry.delete(0, tk.END)
self.window.destroy()
top of page
bottom of page
Comentarios