Холст позволяет рисовать и отображать простые фигуры, такие как линии, овалы, прямоугольники, дуги и многоугольники. Кроме того, имеется возможность встраивать текст, графические изображения и другие виджеты tkinter, такие как метки и кнопки. В сценарии canvas1 продемонстрированы все основные методы конструирования графических объектов — каждому из них передается один или более наборов координат (X,Y), определяющих координаты нового объекта, начальные и конечные точки или противоположные углы рамки, содержащей фигуру:
id = canvas.create_line(fromX, fromY, toX, toY) # начало, конец отрезка прямой
id = canvas.create_oval(fromX, fromY, toX, toY) # противоположные углы овала
id = canvas.create_arc( fromX, fromY, toX, toY) # противоположные углы дуги
id = canvas.create_rectangle(fromX, fromY, toX, toY) # противоположные углы
# прямоугольника
В других методах рисования указывается только одна пара координат (X,Y), определяющая координаты левого верхнего угла объекта:
id = canvas.create_image(250, 0, image=photo, anchor=NW) # встроить изображ.
id = canvas.create_window(100, 100, window=widget) # встроить виджет
id = canvas.create_text(100, 280, text=’Ham’) # нарисовать текст
Холст также предоставляет метод create_polygon, принимающий произвольное множество аргументов координат, определяющих точки, соединенные линиями. Его удобно использовать для рисования произвольных фигур, образованных отрезками прямых линий.
Помимо координат большинство методов рисования позволяет определять обычные параметры настройки, такие как ширина границы (width), цвет заливки (fill), цвет границы (outline) и так далее. У некоторых типов объектов есть собственные уникальные параметры настройки; например, для линий можно указать форму необязательной стрелки, а текст, виджеты и изображения можно привязывать по направлениям сторон света (что похоже на параметр anchor менеджера компоновки, но в действительности определяет точку объекта, помещаемую в координаты (X,Y), указанные в вызове метода create; NW, например, помещает в координаты (X,Y) левый верхний угол объекта).
Важнее всего, вероятно, отметить здесь, что библиотека tkinter по большей части сама выполняет «черновую» работу — рисуя фигуры, вы только указываете координаты, а библиотека сама вычерчивает и отображает их. Если вам когда-либо приходилось заниматься графикой на низком уровне, то вы оцените разницу.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011