Необходимо создать дополнительное окно, в котором будут указаны координаты для создания рисунка на холсте, и при прожатии кнопки в дополнительном окне фигура рисовалась, а окно исчезало, проблема возникла при попытке получить значения из созданных полей entry, что я не пытался с ними сделать метод get() не получается к ним применить.
from tkinter import *
root = Tk()
ff=Frame(root).pack(side=BOTTOM)
fff=Frame(root).pack(side=TOP)
c = Canvas(fff, width=300, height=200, bg="white")
c.pack()
def about():
a = Toplevel()
a.geometry('180x150')
Label(a, text="x1").place(relx=0.3,rely=0.1,anchor="n")
Label(a, text="x2").place(relx=0.3, rely=0.26, anchor="n")
ent1=Entry(a,width=4).place(relx=0.42,rely=0.1,anchor="n")
ent2=Entry(a, width=4).place(relx=0.42, rely=0.26, anchor="n")
Label(a, text="y1").place(relx=0.6, rely=0.1, anchor="n")
Label(a, text="y2").place(relx=0.6, rely=0.26, anchor="n")
ent3=Entry(a, width=4).place(relx=0.73, rely=0.1, anchor="n")
ent4=Entry(a, width=4).place(relx=0.73, rely=0.26, anchor="n")
a.var = IntVar()
a.var.set(0)
a.radiobut1=Radiobutton(a,text='Прямоугольник',variable=a.var,value=0).place(relx=0.52, rely=0.38, anchor="n")
a.radiobut2=Radiobutton(a,text='Овал',variable=a.var, value=1).place(relx=0.52, rely=0.54, anchor="n")
def Draw():
x1 = ent1.get()
x2 = ent2.get()
y1 = ent3.get()
y2 = ent4.get()
if a.var.get()==0:
c.create_rectangle(x1, y1, x2, y2, fill='yellow', outline='green', width=3, activedash=(5, 4))
if a.var.get()==1:
c.create_oval(x1, y1, x2, y2, fill='yellow', outline='green',width=3, activedash=(5, 4))
a.but1 = Button(a, text="Нарисовать", width=15, height=1,command=Draw).place(relx=0.52, rely=0.7, anchor="n")
button=Button(ff,width=45,height=1,text="Добавить",command=about).pack()
root.mainloop()