79 lines
2.2 KiB
Python
79 lines
2.2 KiB
Python
# Import Module
|
|
from tkinter import *
|
|
import pickle
|
|
import pandas as pd
|
|
import numpy as np
|
|
|
|
#Styl
|
|
tlo = "grey"
|
|
guziki = "#60839D"
|
|
|
|
# Create Object
|
|
root = Tk()
|
|
root.geometry('1000x600')
|
|
root.configure(bg=tlo)
|
|
|
|
def update():
|
|
dane = [address1.__getattribute__,address2.__getattribute__,address3.__getattribute__]
|
|
return None
|
|
|
|
#Wczytanie modelu
|
|
model = pickle.load(open('mieszkania_model', 'rb'))
|
|
|
|
def cena_mieszkania(pokoje, metraz, rok):
|
|
mieszkanie = pd.DataFrame([[pokoje, metraz, rok]], columns=['pokoje', 'metraz', 'rok'])
|
|
cena = model.predict(mieszkanie).item()
|
|
return np.round(cena, 2)
|
|
|
|
# Funkcja tworzy nowe okno ktore wyswietla predykcje ceny
|
|
def Oblicz():
|
|
newWindow = Toplevel(root)
|
|
newWindow.geometry('600x300')
|
|
newWindow.title("wynik")
|
|
newWindow.config(bg=tlo)
|
|
|
|
# okno
|
|
T4 = Label(newWindow,bg=tlo,fg="white",height=3,width=37, text = "Potencjalna cena mieszkania:", bd = 0, relief=RAISED).place(x = 100, y= 50)
|
|
address1 = Label(newWindow,width=37,height=3,bg=guziki,text = wyznacz_cene()).place(x = 100, y= 100)
|
|
update()
|
|
return None
|
|
|
|
def reset():
|
|
return None
|
|
|
|
Button(root,text="Oblicz",font="arial 20 bold",command=Oblicz ).place(x= 800, y=500)
|
|
|
|
#Pola do wpisywania
|
|
|
|
|
|
# metraż
|
|
|
|
address1 = Text(root,width=37,height=3,bg=guziki)
|
|
address1.place(x = 100, y= 100)
|
|
T = Label(root,bg=tlo,fg="white",height=3,width=37, text = "Liczba Pokoi", bd = 0, relief=RAISED).place(x = 100, y= 50)
|
|
|
|
|
|
# liczba pokoi
|
|
address2 = Text(root,width=37,height=3,bg=guziki)
|
|
address2.place(x = 100, y= 200)
|
|
|
|
T2 = Label(root,bg=tlo,fg="white",height=3,width=37, text = "Metraż", bd = 0, relief=RAISED).place(x = 100, y= 150)
|
|
|
|
# Rok budowy
|
|
address3 = Text(root,width=37,height=3,bg=guziki)
|
|
address3.place(x = 100, y= 300)
|
|
|
|
T3 = Label(root,bg=tlo,fg="white",height=3,width=37, text = "Rok Budowy", bd = 0, relief=RAISED).place(x = 100, y= 250)
|
|
|
|
Output = Text(root, height = 5,
|
|
width = 25,
|
|
bg = tlo)
|
|
|
|
def wyznacz_cene():
|
|
pokoje = address1.get("1.0",END)
|
|
metraz = address2.get("1.0",END)
|
|
rok = address3.get("1.0",END)
|
|
return cena_mieszkania(pokoje,metraz,rok)
|
|
|
|
# Execute Tkinter
|
|
root.mainloop() |