在tkinter中重命名标签



我使用tkinter。我想更改标签的名称。通过在字段中输入字符并点击按钮,可以逐个重命名标签。也就是说,我第一次输入字符";你好";,则该字符被插入到标签中;然后将其从字段中删除。这一次我必须为下一个标签输入一个字符。一直到最后(借助for循环(。我这样做了,但它只适用于第一个标签,不适用于下一个标签(:

win=Tk()
size=3
lbls=[]
frms=[]
def func():
for i in range(6,9):
lbls[i].configure(text=name.get())

for i in range(size):
for j in range(size):
frm=Frame(win,bd=2,relief="sunken")
frm.grid(row=i,column=j)
frms.append(frm)
lbl=Label(frm,bg="white",fg="red",width="5")
lbl.grid(row=0,column=0)
lbls.append(lbl)
name=Entry(win)
name.grid(row=4,column=0)
btn=Button(win,text="Start",font=("Arial",14),command=func)
btn.grid(row=3,column=0)
win.mainloop()

您需要使用一个计数器并在函数中增加它。基本上,for循环不会等待您键入内容并按下按钮:

counter = 0
def func():
global counter
lbls[counter].configure(text=name.get()) 

counter += 1 # Increase it by 1
if counter >= len(lbls): # If counter is greater than items in list, then reset
counter = 0
name.delete(0,'end') # Clear the entry

这将在每次按下按钮时不断更新文本。


一些设计技巧:为按钮和条目添加columnspan

name.grid(row=4,column=0,columnspan=3)
btn.grid(row=3,column=0,columnspan=3)

最新更新