Вызов метода bind у кнопки дает ошибку : AttributeError: 'NoneType' object has no attribute 'bind' . type этой кнопки (внутри функции) дает <class 'NoneType'>, тогда как type кнопки в основном теле программы дает <class 'tkinter.Button'> . Windows10, python 3.10.6 .
Python:
from tkinter import *
import time
def f1(event):
w = Toplevel()
w.geometry('180x130')
w.title('Фигура')
lbl_x1 = Label(w,text='x1').grid(row=0,column=0,padx=10)
lbl_x2 = Label(w,text='x2').grid(row=1,column=0,padx=10)
lbl_y1 = Label(w,text='y1').grid(row=0,column=2,padx=5)
lbl_y2 = Label(w,text='y2').grid(row=1,column=2,padx=5)
ent_x1 = Entry(w,width=6).grid(row=0,column=1,padx=5)
ent_x2 = Entry(w,width=6).grid(row=1,column=1,padx=5)
ent_y1 = Entry(w,width=6).grid(row=0,column=3,padx=5)
ent_y2 = Entry(w,width=6).grid(row=1,column=3,padx=5)
r_var = BooleanVar()
r_var.set(0)
r1 = Radiobutton(w,text='Прямоугольник',
variable=r_var, value=0).grid(row=2,column=0,columnspan=4,
sticky=W,padx=10)
r2 = Radiobutton(w,text='Овал',
variable=r_var, value=1).grid(row=3,column=0,columnspan=4,
sticky=W,padx=10)
btn2 = Button(w,text='Нарисовать').grid(row=4,column=0,columnspan=4)
print(type(btn2))
btn2.bind('<Button-1>',f3)
def f2(event,x1,y1,x2,y2,value):
w.destroy()
def f3(event):
pass
root = Tk()
root.title('Главное окно')
c = Canvas(root, width=400, height=400, bg='white')
c.grid(row=0,column=0)
btn = Button(text='Добавить фигуру')
print(type(btn))
btn.bind('<Button-1>',f1)
btn.grid(row=1,column=0)
root.mainloop()