Python Tkinter如何将字符串转为同名对象以调用控件get方法
解决方案
方案1:字典存储控件(推荐)
动态生成批量控件时,使用专用字典存储是最易维护、不会污染全局命名空间的做法,修改创建逻辑:
list_a = ['FACILITYCODE','FACILITYNAME','Owner','RegionDescription','Territory','DMA','ADDRESSONE','CITY', 'STATEABBREVIATION','ZIPCODE'] # 声明字典存储控件 label_dict = {} entry_dict = {} temp_rows_var2 = 0 temp_cols_var2 = 0 for i in list_a: label_dict[i] = Label(editor_frame2, text=str(i)) label_dict[i].grid(row=temp_rows_var2, column=temp_cols_var2) entry_dict[i] = Entry(editor_frame2, width=20) entry_dict[i].grid(row=temp_rows_var2+1, column=temp_cols_var2) temp_cols_var2 +=1
取值逻辑:
new_temp_list = [] for i in list_a: new_temp_list.append(entry_dict[i].get())
方案2:适配现有全局变量写法(不推荐)
你之前的报错原因是[i+"entry"]仅生成了包含拼接字符串的列表,没有从全局命名空间中提取对应名称的控件对象,修改取值逻辑即可:
new_temp_list = [] for i in list_a: entry_obj = globals()[i + "entry"] new_temp_list.append(entry_obj.get())
内容的提问来源于stack exchange,提问作者OrangeCFA
相关产品推荐
相关产品推荐

