Tkinter вывод переменных
Суть задания. В нас есть функция def vidpov():, она вызывается по нажатию кнопки "Відповідь". Надо чтоб по этому нажатию вывелись результаты переменных 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]