diff --git a/SDPPython/prototype2.py b/SDPPython/prototype2.py new file mode 100644 index 0000000..6f1a965 --- /dev/null +++ b/SDPPython/prototype2.py @@ -0,0 +1,84 @@ +import tkinter as tk +from tkinter import ttk + +# Dictionary to store dropdown variables for each pin +dropdown_vars = {} + +def option_selected(pin_num): + print(f"Selected for Pin {pin_num}: {dropdown_vars[pin_num].get()}") + +def generate_pin_fields(): + try: + num_pins = int(pin_entry.get()) + + # Clears pin fields if any + for widget in pin_canvas_frame.winfo_children(): + widget.destroy() + + # Generates the fields for each pin + for i in range(1, num_pins + 1): + tk.Label(pin_canvas_frame, text=f"Pin {i}").grid(row=i, column=0, padx=5, pady=5) + + dropdown_var = tk.StringVar() + dropdown_vars[i] = dropdown_var # Store variable for each pin in dict + + dropdown = ttk.Combobox(pin_canvas_frame, textvariable=dropdown_var, state="readonly") + dropdown['values'] = ('Analog In', 'Analog Out', 'Digital In', 'Digital Out') # Options for dropdown, + dropdown.grid(row=i, column=1, padx=5, pady=5) + dropdown.bind("<>", lambda e, pin_num=i: option_selected(pin_num)) + + pin_canvas_frame.update_idletasks() + pin_canvas.config(scrollregion=pin_canvas.bbox("all")) + + except ValueError: + display_label.config(text="Please enter a valid number of pins.", fg="red") + +def show_circuit_works(): + display_label.config(text="Circuit works", fg="green") + +def show_circuit_not_work(): + display_label.config(text="Circuit does not work", fg="red") + +root = tk.Tk() +root.title("Circuit GUI Prototype") + +# Input for the number of pins +pin_label = tk.Label(root, text="Number of Pins:") +pin_label.grid(row=0, column=0, padx=10, pady=10) +pin_entry = tk.Entry(root) +pin_entry.grid(row=0, column=1, padx=10, pady=10) + +generate_button = tk.Button(root, text="Generate Pins", command=generate_pin_fields) +generate_button.grid(row=0, column=2, padx=10, pady=10) + +# Frame to hold the canvas and scrollbar +container = tk.Frame(root) +container.grid(row=1, column=0, columnspan=3, padx=10, pady=10) + +pin_canvas = tk.Canvas(container, width=300, height=400) +pin_canvas.grid(row=0, column=0) + +# Scrollbar for the canvas +scrollbar = tk.Scrollbar(container, orient="vertical", command=pin_canvas.yview) +scrollbar.grid(row=0, column=1, sticky="ns") +pin_canvas.config(yscrollcommand=scrollbar.set) + +# Frame inside the canvas to hold pin fields +pin_canvas_frame = tk.Frame(pin_canvas) +pin_canvas.create_window((0, 0), window=pin_canvas_frame, anchor="nw") + +# Display label +display_label = tk.Label(root, text="", font=("Arial", 14)) +display_label.grid(row=2, column=0, columnspan=3, padx=10, pady=10) + +# Buttons +button1 = tk.Button(root, text="Circuit Works", command=show_circuit_works) +button1.grid(row=3, column=0, padx=10) + +button2 = tk.Button(root, text="Circuit Does Not Work", command=show_circuit_not_work) +button2.grid(row=3, column=1, padx=10) + +button3 = tk.Button(root, text="Button 3") +button3.grid(row=3, column=2, padx=10) + +root.mainloop()