如何为循环创建的Tkinter Entry组件分别添加1到10的不同值?
解决Tkinter循环创建Entry时依次插入1-10数值的问题
你当前代码中所有Entry都插入1,是因为循环里没有跟踪每个Entry的顺序编号,直接固定插入了常量1。只需在循环中获取每个Entry的序号,就能实现依次插入1到10的需求。
修改后的代码
from tkinter import * root = Tk() root.title("") root.geometry("500x400") canva = Canvas(root, width=450, height=350, highlightbackground="black") # 通过enumerate获取从1开始的序号,对应每个Entry的位置 for num, y_pos in enumerate(range(40, 240, 21), start=1): Abent = Entry(root, width=10) canva.create_window(50, y_pos, anchor="nw", window=Abent) Abent.insert(0, num) # 插入当前序号数值 canva.pack() root.mainloop()
原理说明
enumerate(range(40, 240, 21), start=1)会为range生成的每个y坐标值绑定一个从1开始的序号num,刚好对应你需要的1到10。- 每次循环创建Entry时,将当前的
num插入进去,就能实现第一个Entry插1,第二个插2,直到最后一个插10的效果。
内容的提问来源于stack exchange,提问作者Yiğit Kağan Alpaslan
相关产品推荐
相关产品推荐

