Python for循环中声明的Entry对象如何单独访问.get()获取数据
你当前的写法存在的问题是:每轮循环都会覆盖myEntry变量,循环结束后该变量仅指向最后生成的那一个Entry组件,自然无法获取其他输入框的内容。
最简单的解决方案是用列表存储所有Entry实例,后续需要取值时遍历列表逐个调用.get()方法即可,参考实现如下:
import tkinter as tk from tkinter import Entry, Button, Tk root = Tk() # 初始化空列表存储所有Entry对象 entry_list = [] for i in range(10): myEntry = Entry(root) myEntry.pack() # 每次生成新的Entry就存入列表 entry_list.append(myEntry) # 按钮点击回调函数:批量获取所有输入 def fetch_all_inputs(): input_values = [entry.get() for entry in entry_list] # 此处可根据需求调整对输入值的处理逻辑,比如打印、渲染到界面等 print("用户输入列表:", input_values) submit_btn = Button(root, text="提交获取所有输入", command=fetch_all_inputs) submit_btn.pack() root.mainloop()
你原本想的「修改for循环内部的对象声明名称」本质是要动态生成变量,这种方式实现繁琐且后续维护性差,不推荐使用。
内容的提问来源于stack exchange,提问作者Robin Eriksson
相关产品推荐
相关产品推荐

