Cтворення об'єктів полотна Canvas [Tkinter] [Python]

У tkinter від класу Canvas створюються об'єкти-полотна, на яких можна "малювати", розміщуючи різні фігури і об'єкти. Робиться це за допомогою викликів відповідних методів.

При створенні екземпляра Canvas необхідно вказати його ширину і висоту. При розміщенні геометричних примітивів та інших об'єктів вказуються їх координати на полотні. Точкою відліку є верхній лівий кут.


У програмі нижче створюється полотно. На ньому за допомогою методу create_line малюються відрізки. Спочатку вказуються координати початку (x1, y1) , потім - кінця (x2 , y2 ) .



Решта властивості є необов'язковими. Так activefill визначає колір відрізка при наведенні на нього курсора миші.

Створення прямокутників методом create_rectangle:



Перші координати - верхній лівий кут, другі - правий нижній. У наведеному прикладі, коли на другий прямокутник потрапляє курсор миші, його рамка стає пунктирною, що визначається властивістю activedash.

Методом create_polygon малюється довільний багатокутник шляхом завдання координат кожної його точки:



Для зручності координати точок можна укладати в дужки:


Метод create_oval створює еліпси. При цьому задаються координати гіпотетичного прямокутника, що описує еліпс. Якщо потрібно отримати коло, то відповідно описуваний прямокутник повинен бути квадратом.



Більш складні для розуміння фігури виходять при використанні методу create_arc. Залежно від значення опції style можна отримати сектор (за замовчуванням), сегмент ( CHORD) або дугу (ARC). Також як у випадку create_oval координати задають прямокутник, в який вписане коло (або еліпс), з якої "вирізають" сектор, сегмент або дугу. Опції start присвоюється градус початку фігури, extent визначає кут повороту.


В даному прикладі світло-сірий коло використовується виключно для наочності.

На полотні Canvas можна розмістити текст. Робиться це за допомогою методу create_text:


За замовчуванням в заданій координаті розташовується центр текстового напису. Щоб змінити це і, наприклад, розмістити по зазначеній координування ліву межу тексту, використовується якір зі значенням W(від англ. West - захід). 

Інші значення: N, NE, E, SE, S, SW, W, NW. Якщо букв, які задають сторону прив'язки, дві, то друга визначає вертикальну прив'язку (вгору або вниз «піде» текст від заданої координати). Властивість justify визначає лише вирівнювання тексту відносно себе самого.

Оригінал статті


Полотно Ткінтера (pythontutorial.net) 

Коментарі