2023-10-17 17:28:03 +02:00
|
|
|
import tkinter.filedialog as filedialog
|
|
|
|
import tkinter as tk
|
2023-10-17 18:34:16 +02:00
|
|
|
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')
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
master = tk.Tk()
|
2023-10-17 18:34:16 +02:00
|
|
|
|
2023-10-17 17:28:03 +02:00
|
|
|
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')
|
|
|
|
|
2023-10-17 18:34:21 +02:00
|
|
|
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}"
|
|
|
|
|
2023-10-17 17:28:03 +02:00
|
|
|
input_path = tk.Label(top_frame, text="Powierzchnia w m2:")
|
2023-10-17 18:34:21 +02:00
|
|
|
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)
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
|
|
|
|
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:")
|
2023-10-17 18:34:16 +02:00
|
|
|
input_entry4 = ttk.Combobox(middle_frame, values=["Pierwotny", "Wtórny", "Pierwotny i wtórny"], state="readonly", width=37)
|
|
|
|
input_entry4.set("Wybierz")
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
input_path5 = tk.Label(middle_frame, text="Stan:")
|
2023-10-17 18:34:16 +02:00
|
|
|
input_entry5= ttk.Combobox(middle_frame, values=["Pod klucz", "Deweloperski", "Do wykończenia", "Do remontu"], state="readonly", width=37)
|
|
|
|
input_entry5.set("Wybierz")
|
|
|
|
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
begin_button = tk.Button(bottom_frame, text='Oblicz')
|
2023-10-17 18:34:16 +02:00
|
|
|
begin_button.configure(command=predict_price)
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
output_path = tk.Label(bottom_frame, text="Prognozowana cena:")
|
2023-10-17 18:34:16 +02:00
|
|
|
output_entry = tk.Entry(bottom_frame, text="", width=40, state="readonly")
|
|
|
|
output_entry.insert(0, "Your result goes here")
|
2023-10-17 17:28:03 +02:00
|
|
|
|
|
|
|
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()
|