Untitled

 avatar
unknown
python
2 years ago
3.3 kB
2
Indexable
from tkinter import *
from tkinter import messagebox

# Tworzenie okna programu
root = Tk()
root.title("Magazyn")

# Tworzenie listy towarów
towary = {"jabłka": 100, "banany": 50, "mandarynki": 200}

# Funkcja dodająca towar
def dodaj_towar():
    towar = pole_towar.get().strip()
    ilosc = pole_ilosc.get().strip()
    towar = towar.lower()
    if towar in towary:
        towary[towar] += int(ilosc)
    else:
        towary[towar] = int(ilosc)
    pole_towar.delete(0, END)
    pole_ilosc.delete(0, END)
    wyswietl_towary()

# Funkcja odejmująca towar
def odejmij_towar():
    towar = pole_towar.get().strip()
    ilosc = pole_ilosc.get().strip()
    towar = towar.lower()
    if towar in towary:
        if int(ilosc) <= towary[towar]:
            towary[towar] -= int(ilosc)
            pole_towar.delete(0, END)
            pole_ilosc.delete(0, END)
            wyswietl_towary()
        else:
            messagebox.showerror("Błąd", "Nie ma wystarczającej ilości towaru!")
    else:
        messagebox.showerror("Błąd", "Nie ma takiego towaru!")

# Funkcja usuwająca towary o ilości 0
def usun_towar_ze_stanem_zero():
    for towar, ilosc in list(towary.items()):
        if ilosc == 0:
            del towary[towar]
    wyswietl_towary()

# Funkcja wyświetlająca towar
def wyswietl_towary():
    # usuwanie towary o ilości 0
    for towar, ilosc in list(towary.items()):
        if ilosc == 0:
            del towary[towar]

    # usuwanie kolumn z nagłówkami
    for widget in ramka_tabeli.winfo_children():
        widget.destroy()

    naglowki = ["Towar", "Ilość"]
    for i, naglowek in enumerate(naglowki):
        etykieta_naglowka = Label(ramka_tabeli, text=naglowek, font=("Arial", 14, "bold"))
        etykieta_naglowka.grid(row=0, column=i)

    # wypełnianie tabeli towarów
    for i, (towar, ilosc) in enumerate(towary.items(), start=1):
        etykieta_towaru = Label(ramka_tabeli, text=towar.capitalize(), font=("Arial", 12))
        etykieta_towaru.grid(row=i, column=0)
        etykieta_ilosci = Label(ramka_tabeli, text=str(ilosc), font=("Arial", 12))
        etykieta_ilosci.grid(row=i, column=1)

# Tworzenie etykiet i pól tekstowych
etykieta_towar = Label(root, text="Towar:", font=("Arial", 14, "bold"))
etykieta_towar.grid(row=0, column=0, padx=5, pady=5)

pole_towar = Entry(root, font=("Arial", 12))
pole_towar.grid(row=0, column=1, padx=5, pady=5)

etykieta_ilosc = Label(root, text="Ilość:", font=("Arial", 14, "bold"))
etykieta_ilosc.grid(row=1, column=0, padx=5, pady=5)

pole_ilosc = Entry(root, font=("Arial", 12))
pole_ilosc.grid(row=1, column=1, padx=5, pady=5)

# Tworzenie przycisków
przycisk_dodaj = Button(root, text="Dodaj", font=("Arial", 12), command=dodaj_towar)
przycisk_dodaj.grid(row=2, column=0, padx=5, pady=5)

przycisk_odejmij = Button(root, text="Odejmij", font=("Arial", 12), command=odejmij_towar)
przycisk_odejmij.grid(row=2, column=1, padx=5, pady=5)

# Tworzenie ramki na tabelkę towarów
ramka_tabeli = Frame(root)
ramka_tabeli.grid(row=3, column=0, columnspan=2, padx=5, pady=5)

#Tworzenie ramki tabeli

ramka_tabeli = Frame(root)
ramka_tabeli.grid(row=4, column=0, columnspan=2, padx=5, pady=5)


# Wyświetlenie towarów
wyswietl_towary()

root.mainloop()


#%%