Учебное пособие по холсту Python Tkinter
- Как и другие виджеты, холст также является виджетом, который используется для нескольких целей.
- Canvas — это виджет для рисования, который также может содержать другие виджеты.
- С помощью холста можно создавать 2D-объекты, такие как текст, круг, прямоугольник и т. д.
- На холсте координаты x и y имеют значение 0 в верхнем левом углу.
- Перемещение вправо увеличивает значение x, а перемещение влево увеличивает значение y.
- Слой холста Python Tkinter определяется на основе последовательности размещения, что означает, что объект помещается в конце стили на верхнем слое.
Прямоугольник холста Python Tkinter
- Python Tkinter Canvas имеет встроенные функции для создания фигур.
- Для создания прямоугольника используется метод create_rectangle().
- Этот метод принимает 4 параметра x1, y1, x2, y2. Здесь x1 и y1 — координаты верхнего левого угла, а x2 и y2 — координаты нижнего правого угла.
Код:
Вот код с объяснением создания прямоугольника Python tkinter с использованием canvas
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('300x300')
ws.config(bg='#345')
canvas = Canvas(
ws,
height=200,
width=200,
bg="#fff"
)
canvas.pack()
canvas.create_rectangle(
30, 30, 180, 120,
outline="#fb0",
fill="#fb0")
ws.mainloop()

В этом выводе прямоугольник создается с помощью Python tkinter Canvas .
Если вы запутались с координатами x1, y1,x2, y2, то вот объяснение того же. x1 толкает объект вправо или на восток, y1 толкает объект в южном направлении. X2 и Y2 расширяют прямоугольник в восточном и южном направлениях.

Изображение холста Python Tkinter
- В этом уроке мы научимся реализовывать изображение в Python Tkinter Canvas.
- Мы создали простое изображение в формате .png с помощью MS Paint для демонстрационных целей.
- Во-первых, мы создадим виджет Canvas и зададим ему высоту и ширину.
PhotoImage()метод используется для чтения изображения, а значение сохраняется в переменной img .canvas.create_image(x, y, image=img_path)- Здесь x расширяет изображение вправо, тогда как y расширяет изображение вниз.
- Опция изображения содержит имя файла. Не забываем, что нужен файл (в определенной папке).
Код:
from tkinter import *
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('750x400')
ws.config(bg='#345')
canvas = Canvas(
ws,
height=500,
width=1000,
bg="#fff"
)
canvas.pack()
img = PhotoImage(file="python-tkinter-canvas-image-for-use.png")
canvas.create_image(370, 200, image=img)
ws.mainloop()
Текст холста Python Tkinter
- Текст относится к расположению алфавита (ов).
- Мы можем разместить текст на холсте Python Tkinter, используя файлы
canvas.create_text(x, y). Здесь x & y – позиция текста.
В этом коде отображается текст холста python tkinter.
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('500x300')
ws.config(bg='#345')
canvas = Canvas(
ws,
height=200,
width=400,
bg="#fff"
)
canvas.pack()
canvas.create_text(
200,100,
fill="darkblue",
font="Times 20 italic bold",
text="with great power comes \ngreat responsibility")
ws.mainloop()

В этом выводе мы видим, что текст отображается с использованием холста Python tkinter.
Python Tkinter Canvas Очистить
- В этом разделе мы научимся удалять или очищать python Tkinter Canvas.
- Метод удаления используется для очистки холста или определенного объекта холста.
- Чтобы удалить весь холст, используйте
canvas.delete("all")- Здесь canvas — это переменная, в которой хранится значение виджета Canvas.
- all — это встроенная функция, которая используется для удаления всего, что находится внутри холста.
- Чтобы удалить конкретный объект холста, укажите имя тега вместо «все».
- теги могут быть созданы с помощью тега ключевого слова, за которым следует любое имя.
- Пример: canvas.create_rectangle(100, 30, 400, 200, fill=”red”, tags=”rect”)
canvas.delete("rect")- этот код удалит только прямоугольник с тегом rect.
- Одно и то же имя тега может быть присвоено нескольким объектам.
- И эти объекты будут удалены при использовании метода удаления для предоставленного тега.
код:
В этом коде мы создали несколько объектов и создали кнопки для удаления этих объектов. прямоугольники будут удалены при нажатии на кнопку del_rect , квадраты будут удалены при нажатии на кнопку del_squ и все объекты будут удалены при нажатии на кнопку del_all .
from tkinter import *
ws = Tk()
ws.title('PythonGuides')
ws.geometry('500x400')
ws.config(bg='grey')
canvas = Canvas(
ws,
height=300,
width=400,
bg="#fff",
)
canvas.pack()
canvas.create_rectangle(
30, 20, 200, 100,
fill="red",
tags="rect",
)
canvas.create_oval(
150, 150, 50, 50,
fill="blue",
tag="circ"
)
canvas.create_rectangle(
150, 50, 250, 150,
fill="grey",
tag="squa"
)
canvas.create_text(
180, 250,
font= "Times 20",
text="Squre,Circle & Rectangle \n inside the canvas",
tag='txt'
)
btn1 = Button(
ws,
text='del_rect',
font="Times 12",
command=lambda:canvas.delete("rect")
)
btn1.pack(side=LEFT, fill=X, expand=True)
btn2 = Button(
ws,
text='del_squ',
font="Times 12",
command=lambda:canvas.delete("squa")
)
btn2.pack(side=LEFT, fill=X, expand=True)
btn3 = Button(
ws,
text='del_circ',
font="Times 12",
command=lambda:canvas.delete("circ")
)
btn3.pack(side=LEFT, fill=X, expand=True)
btn4 = Button(
ws,
text='del_all',
font="Times 12",
command=lambda:canvas.delete("all")
)
btn4.pack(side=LEFT, fill=X, expand=True)
ws.mainloop()

В этом выводе отображаются круг, квадрат, прямоугольник и текст. Внизу есть четыре кнопки. Каждая кнопка будет очищать один объект на экране. del_all the Кнопка очистит все на холсте.
Python Tkinter Canvas Matplotlib
- В этом разделе мы научимся использовать matplotlib в холсте Python Tkinter.
- Matplotlib — это библиотека Python, используемая для отображения данных в визуальной форме. Он широко используется в анализе данных. Он превращает данные в графики, гистограммы и т. д.
- matplotlib — это внешняя библиотека, которую необходимо установить перед использованием.
pip install matplotlibэта команда установит matplotlib- после установки matplotlib нам нужно импортировать библиотеки.
- Модуль backend_tkagg используется для рисования на холсте с использованием matplotlib.
- Этот модуль находится внутри matplotlib.backend .
- Также нам нужно импортировать рисунок из matplotlib. фигура
- Рисунок определяет размер области построения, а также предоставляет важную панель инструментов.

Код:
В этом коде мы построили данные с помощью гистограммы.
from tkinter import *
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import *
def click_toplot():
fig = Figure(
figsize = (5, 3),
dpi = 100
)
#change this data to see difference
y = [2, 10, 30, 10, 5, 8, 50, 44, 41]
plot1 = fig.add_subplot(111)
plot1.hist(y)
canvas = FigureCanvasTkAgg(
fig,
master = ws)
canvas.draw()
canvas.get_tk_widget().pack()
toolbar = NavigationToolbar2Tk(
canvas,
ws
)
toolbar.update()
canvas.get_tk_widget().pack()
ws = Tk()
ws.title('PythonGuides')
ws.geometry("650x400")
ws.config(bg='#fb0')
plot_button = Button(master=ws,
command = click_toplot,
text = "Click to Plot")
plot_button.pack()
ws.mainloop()

В этом выводе данные отображаются в виде гистограммы.
Размер холста Python Tkinter
- Размер холста Python Tkinter можно определить, указав высоту и ширину.
- Высота — это вертикальное положение холста в родительском окне.
- Ширина — это горизонтальное положение холста в родительском окне.
- Изменение высоты и ширины изменит размер холста.
canvas = Canvas(
ws,
height=200,
width=400,
bg="#fff"
)
canvas.pack()
- В этом коде мы используем виджет Canvas .
- ws — это родительский слой Tkinter.
- height обеспечивает вертикальное пространство для холста
- widt обеспечивает горизонтальное пространство для холста.
- bg используется для предоставления цвета фона холсту.