Учебное пособие по холсту Python Tkinter

Учебное пособие по холсту 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. фигура
  • Рисунок определяет размер области построения, а также предоставляет важную панель инструментов.
Python Tkinter Canvas 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 используется для предоставления цвета фона холсту.