تدمير نافذة المعارف التقليدية المستوى الأعلى في بيثون
سؤال
وكنت أحاول أن كتابة التعليمات البرمجية التي من شأنها أن صناعة السيارات في إغلاق إطار المستوى الأعلى تاكا في بيثون.
وانتهى بي الأمر الحصول على عمل، ولكن واجهت مشكلة صغيرة على طول الطريق التي لم أكن قادرا على معرفة.
وواثنين من الأزرار الثانية تعمل، ولكن أول واحد لا وأنا لا أفهم لماذا ...
وأي أفكار؟
from Tkinter import *
root = Tk()
def doDestroy ():
TL.destroy()
TL = Toplevel()
TL.b = Button (TL, text="lambda destroy", command=lambda: TL.destroy)
TL.b.pack()
TL.b2 = Button (TL, text="callback destroy", command=doDestroy)
TL.b2.pack()
de = lambda: TL.destroy()
TL.b3 = Button (TL, text="lambda that works", command=de)
TL.b3.pack()
root.mainloop()
المحلول
ولأن تقوم بإرجاع وظيفة وليس نتيجة لها.
ويجب وضع:
command=TL.destroy
وأو إذا كنت تستخدم امدا:
command=lambda: TL.destroy()
لا تنتمي إلى StackOverflow