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

Untreated, invisible stains such as sweat, dirt, and oils from your wedding day can wreak havoc on the delicate fabrics of your wedding dress and cause staining, yellowing, and even fabric decay over time. This is why more brides across the nation have trusted, and we have chosen to partner with Wedding Gown Preservatin Company, professional online wedding dress cleaning & preservation service with the care of you cherished wedding dress. Either bring your dress to us or we can ship the kit to you!

 

The process takes 6-12 weeks from the time the dress is received by WGPC to the time it is either shipped back to you or to our offices.

Wedding Dress Preservation Kit

$350.00 Regular Price
$295.00Sale Price
Quantity
    bottom of page