Tkinter python 3 canvas

The Canvas is a rectangular area intended for drawing pictures or other complex layouts. You can place graphics, text, widgets or frames on a Canvas.

Syntax

Here is the simple syntax to create this widget −

Parameters

master − This represents the parent window.

options − Here is the list of most commonly used options for this widget. These options can be used as key-value pairs separated by commas.

Border width in pixels. Default is 2.

Normal background color.

If true (the default), the canvas cannot be scrolled outside of the scrollregion.

Cursor used in the canvas like arrow, circle, dot etc.

Size of the canvas in the Y dimension.

Color shown in the focus highlight.

Relief specifies the type of the border. Some of the values are SUNKEN, RAISED, GROOVE, and RIDGE.

A tuple (w, n, e, s) that defines over how large an area the canvas can be scrolled, where w is the left side, n the top, e the right side, and s the bottom.

Size of the canvas in the X dimension.

If you set this option to some positive dimension, the canvas can be positioned only on multiples of that distance, and the value will be used for scrolling by scrolling units, such as when the user clicks on the arrows at the ends of a scrollbar.

If the canvas is scrollable, this attribute should be the .set() method of the horizontal scrollbar.

Works like xscrollincrement, but governs vertical movement.

If the canvas is scrollable, this attribute should be the .set() method of the vertical scrollbar.

The Canvas widget can support the following standard items −

arc . Creates an arc item, which can be a chord, a pieslice or a simple arc.

image . Creates an image item, which can be an instance of either the BitmapImage or the PhotoImage classes.

line . Creates a line item.

oval . Creates a circle or an ellipse at the given coordinates. It takes two pairs of coordinates; the top left and bottom right corners of the bounding rectangle for the oval.

polygon . Creates a polygon item that must have at least three vertices.

Example

Try the following example yourself −

Result

When the above code is executed, it produces the following result −

>tkinter. Canvas ( **kwargs ) ¶

master — родительский виджет

confine — булево, выключить скрол холста за пределы региона

height — int , высота виджета

scrollregion — кортеж (w, n, e, s), что-то там с покруткой

w > int , ширина виджета

xscrollcommand — обработчик горизонтальной прокрутки

xscrollincrement — величина горизонтальной прокрутки

yscrollcommand — обработчик вертикальной прокрутки

yscrollincrement — величина вертикальной прокрутки

Добавляет тег элементам

addtag_above ( newtag, tagOr >) ¶

Добавляет новый тег элементу

Добавляет новый тег всем элементам

addtag_below ( newtag, tagOr >) ¶

Добавляет новый тег элементу

addtag_closest ( newtag, x, y, halo=None, start=None ) ¶

Добавляет новый тег элементу, который ближе к указанной точке

addtag_enclosed ( newtag, x1, y1, x2, y2 ) ¶

Добавляет тег элементам, в указанной области

addtag_overlapping ( self, newtag, x1, y1, x2, y2 ) ¶

Добавляет тег элементам, перекрывающих указанную область

addtag_withtag ( newtag, tagOr >) ¶

Добавляет тег элементу по его идентификатору или тегу

Возвращает координаты прямоугльника, в которой находятся указанные объекты холста

Возвращает координату на канвасе по координате экрана

canvasy ( screeny, gr >) ¶

Возвращает координату на канвасе по координате экрана

Возвращает область, в которой находятся указанные объекты

create_arc ( *args, **kwargs ) ¶

Рисует круг, вписанную в прямоугольник, и возвращает его идентификатор

В 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 определяет угол поворота.

В данном примере светло-серый круг используется исключительно для наглядности.

На холсте можно разместить текст. Делается это с помощью метода create_text():

По умолчанию в заданной координате располагается центр текстовой надписи. Чтобы изменить это и, например, разместить по указанной координате левую границу текста, используется якорь со значением W (от англ. west – запад). Другие значения: N, NE, E, SE, S, SW, W, NW. Если букв, задающих сторону привязки, две, то вторая определяет вертикальную привязку (вверх или вниз «уйдет» текст от заданной координаты). Свойство justify определяет лишь выравнивание текста относительно себя самого.

Практическая работа

Создайте на холсте подобное изображение:

Для создания травы используется цикл.

Курс с примерами решений практических работ: android-приложение, pdf-версия.

Sr.No. Option & Description
1