Tkinter вывод переменных

Суть задания. В нас есть функция def vidpov():, она вызывается по нажатию кнопки "Відповідь". Надо чтоб по этому нажатию вывелись результаты переменных S, P, a. Вывод должен быть в ГРИФИЧЕСКОМ ОКНЕ ГДЕ НАДПИСЬ S, P, a -- а не в конлосе. Я нарисовал (чёрные буквы-S, P, a) где должно выводится S, P, a

from tkinter import *
from tkinter import messagebox, Label
from PIL import Image, ImageTk
import tkinter as tk
 
 
#Функция для закривання програми
def on_closing():
    if messagebox.askokcancel("Вихід з програми", "Хочете вийти з програми?"):
        root.destroy()
 
#Функция для очищення введених даних
def clear():
    #ctopA_entry.delete(0, END)
    ctopB_entry.delete(0, END)
    ctopC_entry.delete(0, END)
    ctopD_entry.delete(0, END)
    KytC_entry.delete(0, END)
    KytD_entry.delete(0, END)
#Функция для виводу "Відповіді"
def vidpov():
    from math import sqrt, pow
 
    l = float( ctopB_entry.get() )  # Сторона В
    j = float( ctopC_entry.get() )  # Сторона С
    k = float( ctopD_entry.get() )  # Сторона D
 
    q = float( ctopD_entry.get() ) - float( ctopB_entry.get() )  # формула для знаходженя FD
 
    h = sqrt(pow(j, 2) - pow(q, 2))
 
    a = h
 
    P = a + l + k + j
 
    o = (l + k) / 2
 
    S = h * o
 
    #Креслення пунктирів(верх)
    canvas.create_text(2, 520,
                       text='-------------------------------------------------------------------------------------------------------------',
                       fill='#00B1FF', font=("Times", 26))
    # Креслення пунктирів(низ)
    canvas.create_text(2, 596,
                       text='-------------------------------------------------------------------------------------------------------------',
                       fill='#00B1FF', font=("Times", 26))
    #Залівка для площи
    canvas.create_polygon((7, 528), (7, 595),
                          (195, 595), (195, 528),
                          fill='#ff00ff')
    # Залівка для периметра
    canvas.create_polygon((205, 528), (205, 595),
                          (395, 595), (395, 528),
                          fill='#ff00ff')
    # Залівка для сторони а
    canvas.create_polygon((405, 528), (405, 595),
                          (593, 595), (593, 528),
                          fill='#ff00ff')
 
    canvas.create_text(2, 540,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
    canvas.create_text(2, 575,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
 
    canvas.create_text(598, 540,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
    canvas.create_text(598, 575,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
 
    canvas.create_text(200, 540,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
    canvas.create_text(200, 575,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
 
    canvas.create_text(400, 540,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
    canvas.create_text(400, 575,
                       text='|',
                       fill='#00B1FF', font=("Times", 26, 'bold'))
 
    canvas.create_text(105, 541,
                       text='Площа:',
                       fill='#00FDFF', font=("Times", 17, 'bold', 'italic'))
    canvas.create_text(305, 541,
                       text='Периметр:',
                       fill='#00FDFF', font=("Times", 17, 'bold', 'italic'))
    canvas.create_text(505, 541,
                       text='Сторона "a":',
                       fill='#00FDFF', font=("Times", 17, 'bold', 'italic'))
   
 
#Для створення графічного вікна застосовується конструктор Tk (), який визначений
# в модулі tkinter. Створюване вікно присвоюється змінної root, і через цю змінну
# ми можемо управляти атрибутами вікна. Зокрема, за допомогою методу title () можна
# встановити заголовок вікна.
#-------------------------------------------------------------------------------------
root = Tk()
root.protocol("WM_DELETE_WINDOW", on_closing)
 
root.title('Калькулятор "Трапеція"')
root.resizable(width=False, height=False)
root.wm_attributes("-topmost", True)  # щоб вікно залишалося вище всіх інших вікон
root.wm_attributes("-alpha", 0.95)
canvas = Canvas(root, width=600, height=600, bd=1, bg='#D4135B', highlightthickness=0) #Canvas створюються об'єкти-полотна, на яких можна "малювати", розміщуючи різні фігури і об'єкти. Робиться це за допомогою викликів відповідних методів.
canvas.pack()
#-------------------------------------------------------------------------------------
    #Добавлення малюнку до нашої програми
#-------------------------------------------------------------------------------------
our_image = Image.open("Трапеція.png")
our_image = our_image.resize((550, 350), Image.ANTIALIAS)
our_image = ImageTk.PhotoImage(our_image)
our_label = Label(image=our_image)
our_label.image = our_image
our_label.place(x=22.5, y=48)
#-------------------------------------------------------------------------------------
 
#nameA_label = Label(text="а =",
# fg='#00FDFF',
# bg='#FF004C',
# font=("Comic Sans MS",
# 14, "bold"))
# nameA_label.place(relx=.01, rely=.728)
# ctopA_entry = Entry()
# ctopA_entry.place(relx=.07, rely=.739)
 
#Добавлення тесту на вводу тексту. Розташовування його та колір
#-------------------------------------------------------------------------------------
nameTrap_label = Label(text="Малюнок даної трапеції",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    16, 'bold'))
nameTrap_label.place(relx=.5, rely=.01, anchor="n")
 
nameStopona_label = Label(text="Сторони:",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    13, 'italic'))
nameStopona_label.place(relx=.01, rely=.67)
 
 
nameB_label = Label(text="b =",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    14, "bold"))
nameB_label.place(relx=.08, rely=.72)
ctopB_entry = tk.Entry(root,
                       width=7, justify='center')
ctopB_entry.place(relx=.143, rely=.73)
 
nameC_label = Label(text="c =",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    14, "bold"))
nameC_label.place(relx=.08, rely=.76)
ctopC_entry = tk.Entry(root,
                       width=7, justify='center')
ctopC_entry.place(relx=.143, rely=.773)
 
nameD_label = Label(text="d =",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    14, "bold"))
nameD_label.place(relx=.08, rely=.805)
ctopD_entry = tk.Entry(root,
                       width=7, justify='center')
ctopD_entry.place(relx=.143, rely=.815)
 
 
 
#-------------------------------------------------------------------------------------
nameKyt_label = Label(text="Кути(вводити в градусах):",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    13, 'italic'))
nameKyt_label.place(relx=.3, rely=.67)
 
KytC_label = Label(text="∠С =",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    12, "bold"))
KytC_label.place(relx=.4, rely=.73)
KytC_entry = tk.Entry(root,
                       width=7, justify='center')
KytC_entry.place(relx=.48, rely=.737)
 
KytD_label = Label(text="∠D =",
                    fg='#00FDFF',
                    bg='#FF004C',
                    font=("Comic Sans MS",
                    12, "bold"))
KytD_label.place(relx=.4, rely=.79)
KytD_entry = tk.Entry(root,
                       width=7, justify='center')
KytD_entry.place(relx=.483, rely=.797)
 
#-------------------------------------------------------------------------------------
    # вставка начальных данных
ctopB_entry.insert(0, "8")
ctopC_entry.insert(0, "13")
ctopD_entry.insert(0, "20")
KytC_entry.insert(0, "135")
KytD_entry.insert(0, "45")
#-------------------------------------------------------------------------------------
 
#Створення двох кнопок. Розташовування їх та колір.
#-------------------------------------------------------------------------------------
vidpovid = tk.Button(root, text="Відповідь",
                           fg='#00FDFF', bg='#FF004C', width=8, height=1,
                           font=('Helvetica', '12', 'bold'), command=vidpov)
vidpovid.place(relx=.84, rely=.8)
 
clear = tk.Button(root, text="Clear",
                         fg='#00FDFF', bg='#FF004C', width=8, height=1,
                         font=('Helvetica', '12', 'bold'), command=clear)
clear.place(relx=.84, rely=.73)
#-------------------------------------------------------------------------------------
 
root.mainloop()[![Я нарисовал (чёрные буквы-S, P, a) где должно выводится S, P, a][1]][1]

Ответы (0 шт):