Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

tkinter python рисование

tkinter python рисование

Всем привет! Сегодня мы с вами познакомимся с элементом canvas который переводится как холст. Именно на данном холсте мы можем производить отрисовку различных фигур и текста. Итак, поехали!

Для того чтобы начать отрисовку в окне необходимо создать элемент canvas.

canvas = Canvas(window, width=600,height=600,bg="gray", cursor="pencil")

C помощью виджета canvas у нас создается холст. В него мы передали следующие параметры:

window - главное окно

width, height - ширина и высота холста

bg - заливка холста(gray - серый цвет)

cursor - курсор в фокусе холста(pencil - карандаш)

Пример:

from tkinter import *

window = Tk()
window.title('Работа с canvas')

canvas = Canvas(window,width=600,height=600,bg="gray",
          cursor="pencil")


canvas.pack()
window.mainloop()
Элемент canvas

C помощью метода pack() мы выводим наш холст в главное окно.

Все теперь мы можем переходить к отрисовке. Начнем с простых линий.

canvas.create_line(0,0,600,600,width=5,fill="yellow")
canvas.create_line(0,600,600,0,width=5,fill="yellow")
линии в canvas tkinter

Здесь мы создали две прямых линии. Для их создания воспользовались методом create_line() который принимает в себя следующие параметры.

Первые два параметра это координаты x,y первой точки начало отрезка.

Вторые два параметры это координаты x,y второй точки конец отрезка.

width - толщина линии.

fill - заливка, цвет линии(yellow - желтый).

Для того чтобы на холсте нарисовать прямоугольник или квадрат, нужно воспользоваться методом create_rectangle().

canvas.create_rectangle(50,250,300,500,fill="white",outline="blue")
квадрат в canvas tkinter

C помощью метода create_rectangle()мы нарисовали квадрат. Данный метод принимает в себя следующие параметры:

Первые два параметра координаты левого верхнего угла прямоугольника.

Вторые два параметра координаты правого нижнего угла прямоугольника.

fill - цвет заливки прямоугольника.

outline - цвет рамки прямоугольника.

Теперь переходим к отрисовке эллипсов и кругов.

Для того чтобы нарисовать круг или овал нам достаточно воспользоваться методом create_oval().

canvas.create_oval([400,250],[450,300],fill="pink")
круг в canvas

В основе отрисовки круга с помощью данного метода лежит отрисовка прямоугольника. То есть по сути мы отрисовываем невидимый квадрат куда может быть помещен в полную высоту и ширину квадрат или овал.

Данный метод принимает собой следующие аргументы:

Первые два аргумента в квадратных скобочках координаты x,y левого верхнего угла квадрата.

Вторые два аргумента в квадратных скобочках координаты x, y правого нижнего угла квадрата.

fill - цвет заливки овала.

Для отрисовки более сложных фигур треугольников, многоугольников, многогранников.

Мы можем воспользоваться методом create_polygon().

canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow")
сложные фигуры в canvas

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

Точек в разных координатах можно создавать сколько угодно. В результате можно нарисовать фигуру практически любой сложности. Свойство fill отвечает за цвет заливки фигуры, а outline за ее контур. Заметьте мы указали цвет заливки точно такой же как и цвет холста и в результате у нас получился эффект не закрашенной фигуры.

И напоследок рассмотрим отрисовку текста в canvas.

canvas.create_text(250,280,text="Текст в canvas",
          font="Verdana 12",justify=CENTER,fill="red")
текст в canvas tkinter

За отрисовку текста в canvas отвечает метод create_text(). В него передаются следующие параметры:

Первые два параметра координаты x, y расположения текста на холсте.

text - текст который мы хотим нарисовать

font - шрифт и размер текста

justify - выравнивание текста(слева, справа, по центру)

fill - цвет текста

Весь написанный за сегодня код выглядит так:

from tkinter import *
window = Tk()
window.title('Работа с canvas')
canvas = Canvas(window,width=600,height=600,bg="gray",
          cursor="pencil")
canvas.create_line(0,0,600,600,width=5,fill="yellow")
canvas.create_line(0,600,600,0,width=5,fill="yellow")
canvas.create_rectangle(50,250,300,500,fill="white",outline="blue")
canvas.create_oval([400,250],[450,300],fill="pink")
canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow")
canvas.create_text(250,280,text="Текст в canvas",
          font="Verdana 12",justify=CENTER,fill="red") 
canvas.pack()
window.mainloop()

Отлично! Сегодня мы с вами познакомились с основами рисования canvas библиотеки tkinter.

Если у вас появились какие либо вопросы пишите в группу

вконтакте

или оставляйте их в комментариях к данной статье.

Также у меня есть канал на

youtube

где я каждую неделю публикую новые видео посвященные веб разработке. Так что переходите и будем развиваться вместе.

На этом у меня на сегодня все. Желаю вам успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Евгений

12:00 12-11-2019

Не подскажите как повернуть текст на 90 градусов чтобы подписать ось Y

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm