我正在創建一個動態回圈來創建一個按鈕,我希望我可以創建一個包含洗掉按鈕和標簽的框架,當我單擊洗掉按鈕時,它可以告訴我標簽文本也會洗掉整個框架
def deleteEvent(num):
print(num)
for inx, num in enumerate (evid):
print(num)
f = tk.Frame(window)
#eventVar = tk.IntVar(f,value=evid[num])
#eventVar.set(str(evid[x]))
e1=tk.Label(f, text='event content: ' cal.calevent_cget(num,option='text'))
e1.pack(side='top')
e2=tk.Label(f, text=num)
e2.pack(side='top')
#place(anchor="nw", x=0, y=0, width=0, height=0)
#tk.Button(f, text='delete', command=lambda text=num: deleteEvent(text)).pack(side='top')
e3=tk.Button(f, text='delete', command=lambda:[ (lambda num=num: deleteEvent(num)),f.destory] )
e3.pack(side='top')
#delete_button=tk.Button(window, text='delete', command=deleteEvent).pack()
#modify_button=tk.Button(window, text='modify', command=modifyEvent).pack()
f.pack()
print('end')
#f.pack()
終端回傳錯誤
Traceback (most recent call last):
File "C:\Users\CloudMosa\Anaconda3\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "c:\Users\CloudMosa\Desktop\calander.py", line 52, in <lambda>
e3=tk.Button(f, text='delete', command=lambda:[ (lambda num=num: deleteEvent(num)),f.destory] )
AttributeError: 'Frame' object has no attribute 'destory'
uj5u.com熱心網友回復:
你有一個錯字,它是沙漠-特洛伊不是沙漠-托利
另外,改變這一行 -
e3=tk.Button(f, text='delete', command=lambda:[ (lambda num=num: deleteEvent(num)),f.destroy()])
在()使用lambda時,需要
uj5u.com熱心網友回復:
正如另一個答案指出的那樣,它是錯字錯誤并且()在呼叫函式時丟失了。
除此之外,我不建議在lambda. 只需在單個功能中完成所需的作業,例如deleteEvent():
def deleteEvent(num, frame):
print(num)
frame.destroy()
for inx, num in enumerate (evid):
print(num)
f = tk.Frame(window)
...
e3 = tk.Button(f, text='delete', command=lambda f=f, num=num: deleteEvent(num, f))
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365161.html
