Реалізація програмного проекту відповідно до розробленого сценарію

Завдання 1. Заповніть таблицю, аналізуючи зображення

Завдання 2. Розмістити та конфігурувати елементи графічного  інтерфейсу

https://trinket.io/docs/colors   обрати кольори

# під'єднати модулі

from tkinter import*

from tkinter import ttk

from tkinter import messagebox

# розмістити та конфігурувати вікно

shop=Tk()

shop.geometry("1000x800")

shop.title("Магазин \"Квіти\"")

shop.config(bg="#9932CC")

zagolovok=Label(shop,

                text="магазин\"Квіти\"",

                font=("Arial",60,"bold"),

                fg="#FAEBD7",

                bg="#9932CC")

zagolovok.place(x=150,y=10)

img=PhotoImage(file="01.png")

buket=Canvas(shop,width="400",height="400",bg="white")

buket.create_image(202,202,image=img)

buket.place(x=20,y=120)


zagolovok2=Label(shop,

                text="Оберіть складові букету",

                font=("Arial",16,"bold"),

                fg="#FAEBD7",

                bg="#9932CC")

zagolovok2.place(x=600,y=120)

img1=PhotoImage(file="pack1.png")

pack1=Canvas(shop,width="150",height="150",bg="white")

pack1.create_image(76,76,image=img1)

pack1.place(x=450,y=160)

img2=PhotoImage(file="pack2.png")

pack2=Canvas(shop,width="150",height="150",bg="white")

pack2.create_image(76,76,image=img2)

pack2.place(x=640,y=160)

img3=PhotoImage(file="pack3.png")

pack3=Canvas(shop,width="150",height="150",bg="white")

pack3.create_image(76,76,image=img3)

pack3.place(x=830,y=160)

radio=IntVar()

radio1=Radiobutton(shop,

                text="Варіант №1\n300 грн.",

                font=("Arial",16,"bold"),

                fg="#FFFF00",

                  value=1,variable=radio,

                bg="#9932CC")

radio1.place(x=440,y=320)

radio2=Radiobutton(shop,

                text="Варіант №2\n200 грн.",

                font=("Arial",16,"bold"),

                fg="#FFFF00",

                 value=2,variable=radio,

                bg="#9932CC")  

radio2.place(x=630,y=320)

radio3=Radiobutton(shop,

                text="Варіант №1\n100 грн.",

                font=("Arial",16,"bold"),

                fg="#FFFF00",

                   value=3,variable=radio,

                bg="#9932CC")

radio3.place(x=820,y=320)

zagolovok3=Label(shop,

                text="Оберіть квіти та вкажіть їх кількість",

                font=("Arial",16,"bold"),

                fg="#90EE90",

                bg="#9932CC")

zagolovok3.place(x=480,y=380)

#------------------------------------

kvitka1=IntVar()

kv_k1=Checkbutton(shop,

                text="Гербери-60 грн.",

                onvalue=60,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka1)

kv_k1.place(x=450,y=410)

kv1=Entry(shop,font=("Arial",16,"bold"))

kv1.place(x=800,y=410,width=100)

#------------------------------------

#------------------------------------

kvitka2=IntVar()

kv_k2=Checkbutton(shop,

                text="Гіпсофіли-45 грн.",

                onvalue=45,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka2)

kv_k2.place(x=450,y=445)

kv2=Entry(shop,font=("Arial",16,"bold"))

kv2.place(x=800,y=445,width=100)

#------------------------------------

#------------------------------------

kvitka3=IntVar()

kv_k3=Checkbutton(shop,

                text="Лілії-50 грн.",

                onvalue=50,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka3)

kv_k3.place(x=450,y=480)

kv3=Entry(shop,font=("Arial",16,"bold"))

kv3.place(x=800,y=480,width=100)

#------------------------------------

#------------------------------------

kvitka4=IntVar()

kv_k4=Checkbutton(shop,

                text="Півонії-65 грн.",

                onvalue=65,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka4)

kv_k4.place(x=450,y=515)

kv4=Entry(shop,font=("Arial",16,"bold"))

kv4.place(x=800,y=515,width=100)

#------------------------------------

#------------------------------------

kvitka5=IntVar()

kv_k5=Checkbutton(shop,

                text="Тюльпани-50 грн.",

                onvalue=50,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka5)

kv_k5.place(x=450,y=550)

kv5=Entry(shop,font=("Arial",16,"bold"))

kv5.place(x=800,y=550,width=100)

#------------------------------------

#------------------------------------

kvitka6=IntVar()

kv_k6=Checkbutton(shop,

                text="Хризантеми-40 грн.",

                onvalue=40,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka5)

kv_k5.place(x=450,y=550)

kv5=Entry(shop,font=("Arial",16,"bold"))

kv5.place(x=800,y=550,width=100)

#------------------------------------

#------------------------------------

kvitka6=IntVar()

kv_k6=Checkbutton(shop,

                text="Троянди-90 грн.",

                onvalue=90,

                font=("Arial",16,"bold"),

                fg="#00FFFF",

                bg="#9932CC", variable=kvitka6)

kv_k6.place(x=450,y=585)

kv6=Entry(shop,font=("Arial",16,"bold"))

kv6.place(x=800,y=585,width=100)

kn1=Button(shop,font=("Arial",16,"bold"),text="<<<<<")

kn1.place(x=20,y=530,width=200)

kn2=Button(shop,font=("Arial",16,"bold"),text=">>>>>")

kn2.place(x=224,y=530,width=200)

zagolovok4=Label(shop,

                text="Маєш купон знижки?\nОбери відсоток",

                font=("Arial",16,"bold"),

                fg="#90EE90",

                bg="#9932CC")

zagolovok4.place(x=30,y=580)

zn=ttk.Combobox(shop,font=("Arial",16,"bold"),value=[0,10,20,30])

zn.current(0)

zn.place(x=250,y=595,width=100)

rezult=Button(shop,font=("Arial",20,"bold"),text="Виконайте розрахунки обраного букету")

rezult.place(x=50,y=680,width=680,height=40)

zagolovok5=Label(shop,

                text="До сплати 0 грн.",

                font=("Arial",20,"bold"),

                fg="#FAEBD7",

                bg="#9932CC")

zagolovok5.place(x=710,y=680)

shop.mainloop()

Завдання 3. Прописати логіку програми

#листання картинки

k=0

foto=["01.png","02.png","03.png","04.png","05.png","06.png","07.png"]

def step (link):

    global k

    if(link==">"):

      k=k+1

      if k>6:k=o

      img=PhotoImage(file=foto[k])

      buket.create_image(202,202,image=img)

      buket.image=img

    if(link=="<"):

      k=k-1

      if k>6:k=6

      img=PhotoImage(file=foto[k])

      buket.create_image(202,202,image=img)

      buket.image=img

УВАГА!!!

kn1=Button(shop,font=("Arial",16,"bold"),text="<<<<<",command=lambda:step("<"))

kn1.place(x=20,y=530,width=200)

kn2=Button(shop,font=("Arial",16,"bold"),text=">>>>>",command=lambda:step(">"))

kn2.place(x=224,y=530,width=200)

#перевіряти обрання пакувань і квітів

def plata():

    summa=0

    if radio.get()==0 or (kvitka1.get()==0 and kvitka2.get()==0 and

       kvitka3.get()==0 and kvitka3.get()==0 and kvitka4.get()==0 and kvitka5.get()==0 and kvitka6.get()==0):

       messagebox.showinfo("Увага","Ви не обрали пакування")

    else:

       if (kvitka1.get()!=0 and kv1.get()=="") or (kvitka2.get()!=0 and kv2.get()=="") or (kvitka3.get()!=0 and

       kv3.get()=="") or (kvitka4.get()!=0 and kv4.get()=="") or (kvitka5.get()!=0 and

       kv5.get()=="") or (kvitka6.get()!=0 and kv6.get()==""):

           messagebox.showinfo("Увага","Ви не обрали кількість квітів")

УВАГА!

rezult=Button(shop,font=("Arial",20,"bold"),text="Виконайте розрахунки обраного букету",command=lambda:plata())

rezult.place(x=50,y=680,width=680,height=40)

else:

      if radio.get()==1:summa=summa+300

      if radio.get()==2:summa=summa+200

      if radio.get()==3:summa=summa+100

      if (kvitka1.get()!=0 and kv1.get()!=""):summa=summa+int(kvitka1.get())*int(kv1.get())

      if (kvitka2.get()!=0 and kv2.get()!=""):summa=summa+int(kvitka2.get())*int(kv2.get())

      if (kvitka3.get()!=0 and kv3.get()!=""):summa=summa+int(kvitka3.get())*int(kv3.get())

      if (kvitka4.get()!=0 and kv4.get()!=""):summa=summa+int(kvitka4.get())*int(kv4.get())

      if (kvitka5.get()!=0 and kv5.get()!=""):summa=summa+int(kvitka5.get())*int(kv5.get())

      if (kvitka6.get()!=0 and kv6.get()!=""):summa=summa+int(kvitka6.get())*int(kv6.get())

      summa=summa-summa*int(zn.get())/100

      zagolovok5.config(text="До сплати" +str(summa)+"грн."