python - 重命名 tkinter 中的标签
问题描述
我和 tkinter 一起工作。我想更改标签的名称。通过在字段中输入字符并点击按钮,标签被一一重命名。也就是我第一次输入字符“Hello”,然后那个字符被插入到标签中;然后将其从现场移除。这次我必须为下一个标签输入一个字符。依此类推,直到结束(在 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)
推荐阅读
- elasticsearch - Elasticsearch 查询循环返回不同的结果
- datatables - Jquery Datatables复选框记住分页问题
- wordpress - 根据星期几插入文本的简码
- python - 让 SublimeLinter 显示错误代码
- python - 使用scrapy-splash点击按钮
- python - 熊猫在一个系列中从另一个系列中找到超级字符串
- matlab - 投影变换:寻找新的像素位置 MATLAB
- javascript - 获取图片 url Firebase 存储(管理员)
- c# - DeleteSubKey 以前的应用程序版本/s C#
- python - 从 readlines() 中删除行