Untitled
unknown
python
2 months ago
8.1 kB
5
Indexable
import tkinter as tk from tkinter import ttk # Funkcja generująca tekst na podstawie zaznaczonych warunków def generate_text(): WWpart_number_value = WWpart_number.get() # Pobranie wartości wprowadzonego numeru Mfrpart_number_value = Mfrpart_number.get() mfr_name_value = mfr_name.get() # Warunki zależne od zaznaczenia checkboxów if Engine_var.get() and Turbine_var.get(): text = f"[PROD_ELEC_Engine,Turbine] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" elif Engine_var.get() and IPCS_var.get(): text = f"[PROD_ELEC_Engine,IPCS] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" elif Turbine_var.get() and IPCS_var.get(): text = f"[PROD_ELEC_Turbine,IPCS] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" elif Engine_var.get(): text = f"[PROD_ELEC_Engine] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" elif Turbine_var.get(): text = f"[PROD_ELEC_Turbine] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" elif IPCS_var.get(): text = f"[PROD_ELEC_IPCS] {WWpart_number_value} AML Maintenance\n" text += "-----------------------------------\n" text += f"WWpart: {WWpart_number_value}" if revision_var.get(): text += "\n-Advanced Revision." if EDS_var.get(): text += "\n-Removed 'EDS' from description." if classification_var.get(): text += "\n-Classification added." if Handling_Reqt_var.get(): text += "\n-Changed Engineering Handling Reqt(s) to Standard." if update_compliance_req_var.get(): text += "\n-Updated Compliance Requirements from 'RoHS2_[2011_65_EU]' to 'RoHS2_[2015_863_EU]'." if added_compliance_req_var.get(): text += "\n-Added Compliance Requirements as 'RoHS2_[2015_863_EU]'." if remove_compliance_req_var.get(): text += "\n-Remove Compliance Requirements from 'RoHS2_[2015_863_EU]' to blank." if compliant_var.get(): text += "\n-Added to AML as RoHS Compliant:\n" text += (f"[{mfr_name_value}] " f"{Mfrpart_number_value}\n") if non_compliant_var.get() or (non_compliant_var.get() and compliant_var.get()): text += "\n-Added to AML as RoHS Non-Compliant:\n" text += "\nDISPOSITION:\nUSE - All applications.\n" text += "--------------------------------------------\n" text += "Substantiation:\nComponent Management\n" text += "--------------------------------------------\n" text += "REASON FOR CHANGE:\n" text += f"AML Maintenance. Adding new mfr part from {mfr_name_value} with different package option per Fideltronik request." result_text.delete(1.0, tk.END) result_text.insert(tk.END, text) # Funkcja resetująca zaznaczone boxy i pola tekstowe def reset_fields(): WWpart_number.delete(0, tk.END) Resp_eng.delete(0, tk.END) Mfrpart_number.delete(0, tk.END) mfr_name.delete(0, tk.END) Engine_var.set(False) Turbine_var.set(False) IPCS_var.set(False) revision_var.set(False) EDS_var.set(False) classification_var.set(False) Handling_Reqt_var.set(False) compliant_var.set(False) non_compliant_var.set(False) added_compliance_req_var.set(False) update_compliance_req_var.set(False) remove_compliance_req_var.set(False) sub_var1.set(False) sub_var2.set(False) var3.set(False) result_text.delete(1.0, tk.END) # Główne okno aplikacji root = tk.Tk() root.title("Fideltronik requests CN generator") # Ramka dla opcji frame = ttk.Frame(root, padding="10") frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S)) # Definicje zmiennych do przechowywania stanu opcji Engine_var = tk.BooleanVar() Turbine_var = tk.BooleanVar() IPCS_var = tk.BooleanVar() revision_var = tk.BooleanVar() EDS_var = tk.BooleanVar() classification_var = tk.BooleanVar() Handling_Reqt_var = tk.BooleanVar() compliant_var = tk.BooleanVar() non_compliant_var = tk.BooleanVar() added_compliance_req_var = tk.BooleanVar() update_compliance_req_var = tk.BooleanVar() remove_compliance_req_var = tk.BooleanVar() sub_var1 = tk.BooleanVar() sub_var2 = tk.BooleanVar() var3 = tk.BooleanVar() # Pytania i checkboxy dla opcji ttk.Label(frame, text="Enter WW part number").grid(row=0, column=0, sticky=tk.W) WWpart_number = ttk.Entry(frame, width=30) WWpart_number.grid(row=1, column=0, sticky=tk.W) ttk.Label(frame, text="Enter Resp. Eng.").grid(row=0, column=1, sticky=tk.W) Resp_eng = ttk.Entry(frame, width=30) Resp_eng.grid(row=1, column=1, sticky=tk.W) ttk.Label(frame, text="Where does product is used?").grid(row=2, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Engine", variable=Engine_var).grid(row=3, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Turbine", variable=Turbine_var).grid(row=3, column=1, sticky=tk.W) ttk.Checkbutton(frame, text="IPCS", variable=IPCS_var).grid(row=3, column=2, sticky=tk.W) ttk.Label(frame, text="Advanced revision?").grid(row=4, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Yes", variable=revision_var).grid(row=5, column=0, sticky=tk.W) ttk.Label(frame, text="Removed EDS form description?").grid(row=4, column=1, sticky=tk.W) ttk.Checkbutton(frame, text="Yes", variable=EDS_var).grid(row=5, column=1, sticky=tk.W) ttk.Label(frame, text="Classification added?").grid(row=6, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Yes", variable=classification_var).grid(row=7, column=0, sticky=tk.W) ttk.Label(frame, text="Engineering Handling Reqt(s) to Standard?").grid(row=6, column=1, sticky=tk.W) ttk.Checkbutton(frame, text="Yes", variable=Handling_Reqt_var).grid(row=7, column=1, sticky=tk.W) ttk.Label(frame, text="Compliance Requirements: ").grid(row=8, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Added", variable=added_compliance_req_var).grid(row=9, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Update", variable=update_compliance_req_var).grid(row=9, column=1, sticky=tk.W) ttk.Checkbutton(frame, text="Remove", variable=remove_compliance_req_var).grid(row=9, column=2, sticky=tk.W) ttk.Label(frame, text="Added to AML as RoHS").grid(row=10, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Compliant", variable=compliant_var).grid(row=11, column=0, sticky=tk.W) ttk.Checkbutton(frame, text="Non-Compliant", variable=non_compliant_var).grid(row=11, column=1, sticky=tk.W) ttk.Label(frame, text="Enter Mfr part number").grid(row=12, column=0, sticky=tk.W) Mfrpart_number = ttk.Entry(frame, width=30) Mfrpart_number.grid(row=13, column=0, sticky=tk.W) ttk.Label(frame, text="Enter Mfr name").grid(row=12, column=1, sticky=tk.W) mfr_name = ttk.Entry(frame, width=30) mfr_name.grid(row=13, column=1, sticky=tk.W) # Przycisk do generowania tekstu ttk.Button(frame, text="Generate CN description", command=generate_text).grid(row=16, column=0, sticky=tk.W) ttk.Button(frame, text="Reset Fields", command=reset_fields).grid(row=16, column=1, sticky=tk.W) # Utworzenie ramki na widżet Text i scrollbar text_frame = ttk.Frame(root) text_frame.grid(row=17, column=0, padx=10, pady=10) # Widżet Text do wyświetlania wygenerowanego tekstu result_text = tk.Text(text_frame, wrap='word', height=10, width=80) result_text.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # Tworzenie scrollbara scrollb = ttk.Scrollbar(text_frame, command=result_text.yview) scrollb.pack(side=tk.RIGHT, fill=tk.Y) # Konfiguracja scrollbara dla widgetu Text result_text['yscrollcommand'] = scrollb.set # Uruchomienie głównej pętli aplikacji root.mainloop()
Editor is loading...
Leave a Comment