import customtkinter as ctk from tkinter import filedialog, messagebox # Setting up the look and feel of the app ctk.set_appearance_mode("System") ctk.set_default_color_theme("blue") class ArtisanApp(ctk.CTk): def __init__(self): super().__init__() # Configure window self.title("🎨 Artisan Design Hub") self.geometry("500x550") # Title Label self.title_label = ctk.CTkLabel(self, text="Artisan Design Hub", font=ctk.CTkFont(size=24, weight="bold")) self.title_label.pack(pady=20) # Artisan Name Input self.name_label = ctk.CTkLabel(self, text="Artisan Name:", font=ctk.CTkFont(size=14)) self.name_label.pack(pady=5) self.name_entry = ctk.CTkEntry(self, placeholder_text="Enter your name", width=300) self.name_entry.pack(pady=5) # Design Category Dropdown self.cat_label = ctk.CTkLabel(self, text="Design Category:", font=ctk.CTkFont(size=14)) self.cat_label.pack(pady=5) self.cat_dropdown = ctk.CTkOptionMenu(self, values=["Cloth Design", "Furniture Design", "Jewel Design", "Others"], width=300) self.cat_dropdown.pack(pady=5) # Price Input self.price_label = ctk.CTkLabel(self, text="Expected Price (₹):", font=ctk.CTkFont(size=14)) self.price_label.pack(pady=5) self.price_entry = ctk.CTkEntry(self, placeholder_text="Enter expected price", width=300) self.price_entry.pack(pady=5) # Image Upload Button self.file_path = "" self.upload_btn = ctk.CTkButton(self, text="📸 Upload Design Image", fg_color="purple", command=self.upload_image, width=300) self.upload_btn.pack(pady=15) self.file_label = ctk.CTkLabel(self, text="No file selected", font=ctk.CTkFont(size=12, italic=True)) self.file_label.pack(pady=2) # Submit Button self.submit_btn = ctk.CTkButton(self, text="🚀 Submit Design to Manufacturer", fg_color="green", command=self.submit_design, width=300) self.submit_btn.pack(pady=25) def upload_image(self): self.file_path = filedialog.askopenfilename(filetypes=[("Image Files", "*.jpg *.png *.jpeg")]) if self.file_path: filename = self.file_path.split("/")[-1] self.file_label.configure(text=f"Selected: {filename}") def submit_design(self): name = self.name_entry.get() category = self.cat_dropdown.get() price = self.price_entry.get() if not name or not price or not self.file_path: messagebox.showerror("Error", "Please fill all fields and upload an image!") return # Success Message Popup success_msg = f"Congratulations {name}!\n\nYour {category} has been submitted successfully to the Manufacturing Dashboard.\nExpected Price: ₹{price}" messagebox.showinfo("Success", success_msg) # Clear fields for next entry self.name_entry.delete(0, 'end') self.price_entry.delete(0, 'end') self.file_label.configure(text="No file selected") self.file_path = "" if __name__ == "__main__": app = ArtisanApp() app.mainloop()