Віджет Canvas – клас полотна для малювання.
name = Canvas(window)name – ім'я полотна для малювання, window – ім'я вікна, на якому воно розташоване.
Клас Canvas створює холсти, на яких можна розміщувати різні фігури. Це робиться за допомогою виклику відповідних методів. Під час розміщення геометричних примітивів вказуються їхні координати на холсті. Точкою відліку є лівий верхній кут.
from tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200c.pack()c.create_line(15, 10, 180, 100) # малювання лінії з початком в точці (15,10) та кінцем (180,100)c.create_line(50, 180, 170, 120, # координати другої лінії fill='red', # колір лінії width=5, # ширина лінії dash=(10, 2), # для малювання штрихами (довжина пунктиру, довжина пропуску) activefill='yellow', # колір лінії, коли над нею мишка arrow=LAST, # розміщення стрілки в кінці лінії arrowshape="10 30 10") # розміри стрілкиroot.mainloop() # задання команди відображення вікна при запускуfrom tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200c.pack()c.create_rectangle(10, 10, 100, 190) # малювання першого прямокутника з лівою верхньою вершиною (10,10) та правою # нижньою (100,190)c.create_rectangle(120, 50, 190, 120, # вершини другого прямокутника fill='lightpink', # колір заливки outline='blue', # колір межі width=3, # ширина межі activedash=(5, 4)) # коли над прямокутником миша, межа стає штриховоюroot.mainloop() # задання команди відображення вікна при запускуfrom tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=220) # створення полотна шириною 200 та висотою 220c.pack()c.create_oval(10, 10, 190, 100) # малювання першого овалуc.create_oval(50, 110, 150, 210, # вершини прямокутника, у який вписується овал width=10, # ширина межі fill='lightyellow', # колір заливки outline='lightgreen') # колір межіroot.mainloop() # задання команди відображення вікна при запускуЗа допомогою методу create_rectangle() можна побудувати довільний многокутник, задаючи послідовно координати усіх його вершин. Побудуємо трикутник.
from tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200c.pack()c.create_polygon(160, 10, 20, 180, 180, 90, # координати вершин трикутника fill='orange', # колір заливки outline='black') # колір межіroot.mainloop() # задання команди відображення вікна при запускуПобудуємо зірку.
from tkinter import *root = Tk()c = Canvas(root, width=200, height=200)c.pack()points = [100, 140, 110, 110, 140, 100, 110, 90, 100, 60, 90, 90, 60, 100, 90, 110]c.create_polygon(points, outline='green', fill='lightblue', width=3)root.mainloop()from tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200c.pack()c.create_text(100, 100, # координати центрування тексту text="I like \nTkinter!", # текст, що відображатиметься на полотні justify=CENTER, # вирівнювання тексту по центру font="Verdana 14") # тип і розмір шрифтуroot.mainloop() # задання команди відображення вікна при запускуЗалежно від значення параметра style можна отримати сектор (за замовчуванням), сегмент (CHORD) або дугу (ARC). Також, як у випадку create_oval(), координати задають прямокутник, в який вписане коло (або еліпс), з якого "вирізають" сектор, сегмент або дугу. Параметру start присвоюється градус початку фігури, extent визначає кут повороту.
from tkinter import * # імпортування графічної бібліотекиroot = Tk() # створення головного вікнаc = Canvas(root, width=200, height=200) # створення полотна шириною та висотою 200c.pack()c.create_arc(10, 10, 190, 190, start=190, extent=40, fill='blue') # малювання синього сектораc.create_arc(10, 10, 190, 190, start=80, extent=60, fill='red') # малювання червоного сектораc.create_arc(10, 10, 190, 190, start=0, extent=60, style=ARC, outline='darkgreen', width=5) # малювання дугиc.create_arc(10, 10, 190, 190, start=240, extent=100, style=CHORD, fill='yellow') # малювання жовтого сегментаroot.mainloop() # задання команди відображення вікна при запуску