【发布时间】:2020-12-01 17:14:04
【问题描述】:
我已经根据列表 output1 生成了按钮名称。
所以,这个程序将分别创建 4 个按钮,从 'key1' 到 'key4' ,每当我点击按钮key1,搜索框B将被“key1”替换 ,类似地,按键2,key3,key4将分别替换搜索框B中的"key2","key3","key4"...
我的目标是一旦我点击这些按钮之一,它会在搜索框B中插入单词,并且这4个按钮将被自动删除
root = Tk()
def setTextInput(text):
B.delete(0,"end")
B.insert(0, text)
for k in Autput1:
Autput1[k].destroy()
j=0
if j==0:
output1 = ['key1','key2','key3','key4']
global Autput1
Autput1 = []
k=0
for e in output1:
Autput1.append(Button(root,text=e,command=lambda e=e:setTextInput(str(e))))
Autput1[k].grid()
print(Autput1)
k+=1
A = Label(root,text="Search your song here",font=('Roboto',10),bg='#c4302b')
A.grid(row=0,column=0,columnspan=2,padx=10,pady=10)
B = Entry(root,font=('Roboto',20))
B.grid(row=1,column=0,columnspan=2,padx=10,pady=10)
C= Button(root,image=img,command=getsong)
C.grid(row=1,column=2,padx=10,pady=10)
root.mainloop()
这是我尝试销毁附加在列表 Autput1 中的按钮的一部分。
for k in Autput1:
Autput1[k].destroy()
这是错误,也是我尝试修复的唯一问题
TypeError: list indices must be integers or slices, not Button
您可能想知道 Autput1 的值是多少
[<tkinter.Button object .!button2>, <tkinter.Button object .!button3>, <tkinter.Button object
.!button4>, <tkinter.Button object .!button5>]
【问题讨论】: