Учебное пособие по холсту 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 используется для предоставления цвета фона холсту.