mieszkania5/ceny_mieszkan.py
2023-10-17 18:45:45 +02:00

108 lines
3.4 KiB
Python

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()