У програмах часто використовують малюнки: ілюстрації, рухомі зображення, фони тощо. Деякі середовища програмування мають засоби, які забезпечують додавання готових зображень до програмного коду або створення і форматування малюнків у самій програмі. Наприклад, у навчальному середовищі створення та виконання алгоритмів Скретч ви використовували такі засоби для роботи з графікою:
• змінювали образи об’єктів, завантажуючи їх із бібліотеки;
• малювали об’єкти у вбудованому графічному редакторі;
• виконували побудову зображень виконавцем, вказуючи у програмному коді команди групи Олівець.
У мові програмування Python ви вже використовували модуль побудови зображень turtle. У вікні побудови можна було виконувати різні зображення у вигляді піксельної графіки.
Для побудови графічних об’єктів, що складаються з геометричних примітивів і готових малюнків, викликають відповідний метод модуля tkinter, який імпортують до проєкту
canvas=Canvas(tk, width=500, height=500)
Розмір полотна визначається значеннями властивостей Height – кількість точок за вертикаллю, та Width — за горизонталлю. Полотно складається з окремих точок — пікселів, координати яких задаються значеннями х та y
Які геометричні примітиви можна створювати за допомогою модуля Canvas?
Створення зображень на полотні викликається методом:
<Ім’я_ об’єкту_полотно>. create_ <об’єкт >.
Можна побудувати такі об’єкти:
• лінія — line(x1,y1,x2,y2)
• прямокутник — rectangle(x1,y1,x2,y2)
• многокутник — polygon(x1,y1,x2,y2,x3,y3,x4,y4)
• ламана — polyline(x1,y1,x2,y2,x3,y3)
• еліпс — oval(x1,y1,x2,y2)
• дуга — arc(x1,y1,x2,y2,x3,y3,x4,y4).
Об’єкти можуть мати параметри: fi ll — колір заливки, dash —тип заливки, width — ширина лінії та інші.
from tkinter import*
tk=Tk()
canvas=Canvas(tk, width=500, height=500)
canvas.create_line(0,0,500,500)
canvas.create_rectangle(200,50,300,200,fill="blue")
canvas.create_polygon(100,300, 200,300, 100,400, 200, 400)
canvas.create_oval(300,150,450,450,width=4)
canvas.create_arc(10,10,200,100, start=50, extent=180, style=ARC)
canvas.create_arc(10,120,200,280, start=30, extent=300, style=PIESLICE,fill="yellow")
canvas.pack()
tk.mainloop()
Зображення на полотні можна доповнювати текстом і готовими малюнками. Для цього використовують об’єкти:
• text — текст (<властивості>);
• window — вікно (<властивості>);
• image — зображення(<властивості>).
Зображення має бути збережене в ту само папку, що і файл програми. Ці об’єкти мають спільну властивість anchor, яку використовують для того, щоб вказати, чим є точка з вказаними координатами для створюваного об’єкта:
Наприклад, після виконання програми (мал. 19.13) на екрані відображається вікно з малюнком (мал. 19.14), файл якого збережений у папці разом з файлом програми.
(Картинки знайти самостійно, відкрити в Paint і налаштувати розміри (ширина -200)
from tkinter import*
#обробка при натисканні на кнопку
def btn1_click():
lb1.config(text="колібрі")
def btn2_click():
lb1.config(text="орел")
#створюємо головне вікно
root=Tk()
root.title("Птахи")
root.geometry('400x300')
#додаємо текстове поле
lb1=Label(root,text='',font='Arial 16', width="22", bg='blue',fg='white')
lb1.place(x=20,y=150)
#створення кнопки
image1=PhotoImage(file="kolibry.gif")
image2=PhotoImage(file="orel.gif")
btn1=Button(root,image=image1, command=btn1_click)
btn1.place(x=20, y=20)
btn2=Button(root,image=image2, command=btn2_click)
btn2.place(x=200, y=20)
root.mainloop()
Картинки, повинні бути розміщені з файлом - кодом у одній папці!!!