Реалізація програмного проекту відповідно до розробленого сценарію
Завдання 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)+"грн."