تدمير نافذة المعارف التقليدية المستوى الأعلى في بيثون

StackOverflow https://stackoverflow.com/questions/351821

  •  20-08-2019
  •  | 
  •  

سؤال

وكنت أحاول أن كتابة التعليمات البرمجية التي من شأنها أن صناعة السيارات في إغلاق إطار المستوى الأعلى تاكا في بيثون.

وانتهى بي الأمر الحصول على عمل، ولكن واجهت مشكلة صغيرة على طول الطريق التي لم أكن قادرا على معرفة.

وواثنين من الأزرار الثانية تعمل، ولكن أول واحد لا وأنا لا أفهم لماذا ...

وأي أفكار؟

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()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top