import tkinter.filedialog as filedialog import tkinter as tk from tkinter import ttk from tkinter import filedialog from price_evaluation import predict def predict_price(): try: stan = input_entry5.get() czynsz = float(input_entry3.get()) liczba_pokoi = int(input_entry2.get()) metraz = float(input_entry.get()) rynek = input_entry4.get() price = predict(stan, czynsz, liczba_pokoi, metraz, rynek) output_entry.configure(state='normal') output_entry.delete(0, 'end') output_entry.insert(0, str(price)) output_entry.configure(state='readonly') except ValueError: output_entry.configure(state='normal') output_entry.delete(0, 'end') output_entry.insert(0, "Invalid input") output_entry.configure(state='readonly') master = tk.Tk() header_text = "Ceny mieszkań" header_label = tk.Label(master, text=header_text, font=("Arial", 25), anchor = "center", justify="center") header_label.pack(fill="both", expand=True, padx=20, pady=20) def output(): path = tk.filedialog.askopenfilename() input_entry.delete(1, tk.END) input_entry.insert(0, path) top_frame = tk.Frame(master) middle_frame = tk.Frame(master) bottom_frame = tk.Frame(master) line = tk.Frame(master, height=1, width=400, bg="grey80", relief='groove') def increase(): value = int(lbl_value["text"]) if value < float("inf"): lbl_value["text"] = f"{value + 1}" def decrease(): value = int(lbl_value["text"]) if value > 1: lbl_value["text"] = f"{value - 1}" input_path = tk.Label(top_frame, text="Powierzchnia w m2:") input_entry = tk.Entry(top_frame, text = ",", width=40) btn_entry = tk.Label(master = middle_frame, text="Liczba pokoi:") btn_entry.pack(padx = 20) btn_decrease = tk.Button(master=middle_frame, text="-", command=decrease) btn_decrease.pack(padx = 20) lbl_value = tk.Label(master=middle_frame, text="0") lbl_value.pack(padx=20) btn_increase = tk.Button(master=middle_frame, text="+", command=increase) btn_increase.pack(padx=20) input_path3 = tk.Label(middle_frame, text="Czynsz:") input_entry3 = tk.Entry(middle_frame, text="", width=40) input_path4 = tk.Label(middle_frame, text="Rynek:") input_entry4 = ttk.Combobox(middle_frame, values=["Pierwotny", "Wtórny", "Pierwotny i wtórny"], state="readonly", width=37) input_entry4.set("Wybierz") input_path5 = tk.Label(middle_frame, text="Stan:") input_entry5= ttk.Combobox(middle_frame, values=["Pod klucz", "Deweloperski", "Do wykończenia", "Do remontu"], state="readonly", width=37) input_entry5.set("Wybierz") begin_button = tk.Button(bottom_frame, text='Oblicz') begin_button.configure(command=predict_price) output_path = tk.Label(bottom_frame, text="Prognozowana cena:") output_entry = tk.Entry(bottom_frame, text="", width=40, state="readonly") output_entry.insert(0, "Your result goes here") line.pack(pady=4) top_frame.pack(side=tk.TOP) bottom_frame.pack(side=tk.BOTTOM) middle_frame.pack(side=tk.TOP) input_path.pack(pady=5) input_entry.pack(pady=5) input_path3.pack(pady=5) input_entry3.pack(pady=5) input_path4.pack(pady=5) input_entry4.pack(pady=5) input_path5.pack(pady=5) input_entry5.pack(pady=5) output_path.pack(pady=5) output_entry.pack(pady=5) begin_button.pack(pady=30, fill=tk.X) master.mainloop()