C.create_ rectangle (10, 10, 190, 90)

Основы программирования

Для групп: 1003ПК и 1004ПК

Преподаватель: Драгунов С.С.

Тема 8 – Графические объекты (часть 2). На основе виджета Canvas

Введение

В tkinter от класса Canvas создаются объекты-холсты, на которых можно "рисовать", размещая различные фигуры и объекты. Делается это с помощью вызовов соответствующих методов.

При создании экземпляра Canvas необходимо указать его ширину и высоту. При размещении геометрических примитивов и других объектов указываются их координаты на холсте. Точкой отсчета является верхний левый угол (Рисунок 1).

Рисунок 1

Метод.create_line()

В программе, представленной ниже, создается холст и с помощью метода «.create_line()» рисуется отрезок. Сначала указываются координаты начала (x1, y1), затем – конца (x2, y2).

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()

C.create_line(10, 10, 190, 50)

Root.mainloop()

В этой программе создается холст с именем «с» с помощью метода Canvas. В круглых скобках записаны аргументы. Первый аргумент определяет расположение холста в окне «root». Второй аргумент «width» определяет ширину холста в 200 пикселей. Третий аргумент «height» определяет высоту холста в 200 пикселей. Четвертый аргумент «bg» определяет цвет холста, в данном случае – белый.

Метод упаковки «.pack()» определяет расположение холста с именем «с» в окне «root». Поскольку метод «.pack()»  без аргументов и размеры окна «root» не определены, то холст занимает всю площадь окна.

В этой программе у метода create_line() заданы только четыре основных аргумента. Первые два аргумента определяют его начало, а третий и четвертый – его конец. Поэтому по умолчанию получаем толщину линии в один пиксел черного цвета.

Результат выполнения программы представлен на рисунке 2.

Рисунок 2

Для того чтобы сделать линию толщиной в три пиксела красного цвета, надо добавить строку программы, где создается отрезок, еще два аргумента:

c.create_line(10, 10, 190, 50, fill="red")

Результат выполнения программы с изменениями представлен на рисунке 3.

Рисунок 3

Для того чтобы на конце сделать стрелку, необходимо добавит еще два аргумента «arrow=LAST» и «arrowshape ="10 20 10"». Аргумент «arrow=LAST» выполняет стрелку на конце отрезка. Аргумент «arrow = FIRST» выполняет стрелку в начале отрезка. Три значения, аргумента «arrowshape ="10 20 10"», записанные в кавычках через пробел, определяют размер стрелки. Первое значение, - внутренняя длина стрелки в пикселах. Второе значение, - внешняя длина стрелки в пикселах. Третье значение, - ширина стрелки в пикселах.

Результат выполнения программы с изменениями представлен на рисунке 4.

Рисунок 4

Чтобы отрезок был выполнен пунктирной линией, надо добавить еще один аргумент «dash=(20,5)». Первое значение, длина штриха в относительных величинах. Второе значение длина пробела.

Чтобы отрезок изменял свой начальный цвет на другой при наведении на него мышкой, необходимо добавить еще один аргумент «activefill='blue'», в данном примере голубой.

 Результат выполнения программы с изменениями представлен на рисунке 5.

Рисунок 5

8.2 Метод.create_ rectangle():

Методом «.create_rectangle()» создают прямоугольники. Обязательными являются четыре аргумента. Первые два аргумента определяют верхний левый угол прямоугольника (координаты х и y). Третий и четвертый, - нижний правый.

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()

c.create_ rectangle (10, 10, 190, 90)

Root.mainloop()

Результат выполнения программы представлен на рисунке 6.

Рисунок 6

Для того чтобы сделать линию толщиной в 4 пиксела желтого цвета, надо добавить с строку программы, где создается прямоугольник, еще два аргумента:

c.create_ rectangle (10, 10, 190, 90, outline='yellow')

Если вы желаете, чтобы при наведении мышкой эту рамку линия рамки становилась пунктирной и изменяла цвет на красный, то надо добавить еще два аргумента:

c.create_ rectangle (10, 10, 190, 90, outline='yellow',

                          activedash=(5, 4), activeoutline = 'red')

Результат выполнения программы с изменениями представлен на рисунке 7.

Рисунок 7

Для заливки внутренности прямоугольника другим цветом используется аргумент fill='green', в данном случае зеленым. Для того, чтобы цвет заливки изменялся на красный нужно добавить еще один аргумент activefill = 'red'

c.create_ rectangle (10, 10, 190, 90, outline='yellow',

          activedash=(5, 4), activeoutline = 'red', fill='green', activefill = 'red')

Результат выполнения программы с изменениями представлен на рисунке 8.

Рисунок 8

8.3 Метод.create_ polygon():

Методом.create_polygon()  создают многоугольник произвольный формы  путем задания координат каждой его вершины. Обязательным является количество аргументов, соответствующее удвоенному количеству вершин многоугольника. Первое значение пары, - координата х, второе значение пары, - координата y. Например для построения треугольника программа будет выглядеть так:

from tkinter import *

root = Tk()

c = Canvas(root, height=200, bg='white')

C.pack()


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: