我不知道为什么在尝试操作tkinter小部件变量时会出现错误:
AttributeError:'str'对象没有属性'pack'
我试图做一个条目名称的sieres所以如果我的基本名称是A,接下来的名字将是:
A_1,A_2,A_3 ......这是我的代码需要帮助
def generate_fieldes(x):
generated_frame='frame1_'+x
print generated_frame
A_generated ='A_'+x
B_generated ='B_'+x
C_generated ='C_'+x
D_generated ='D_'+x
E_generated ='E_'+x
F_generated ='F_'+x
if frame1.winfo_exists()==1:
generated_frame=Frame(tab1,height=200,width=600,bg='yellow')
A_generated = AutocompleteEntry(list, generated_frame,bd =2,width=26,justify=RIGHT)
A_generated.pack(side = RIGHT)
A_generated.focus_set()
B_generated = Entry(generated_frame, bd =2,width=12,justify=RIGHT)
B_generated.pack(side = RIGHT)
C_generated = Entry(generated_frame, bd =2,width=12,justify=RIGHT)
C_generated.pack(side = RIGHT)
D_generated = Entry(generated_frame, bd =2,width=17,justify=RIGHT)
D_generated.pack(side = RIGHT)
E_generated = Entry(generated_frame, bd =2,width=17,justify=RIGHT)
E_generated.pack(side = RIGHT)
F_generated = Entry(generated_frame, bd =2,width=20,justify=RIGHT)
F_generated.pack(side = RIGHT)
generated_frame.pack(fill=X,side=TOP)
generate_fields('1')
答案 0 :(得分:0)
你可能需要这个:
A_generated = Entry(generated_frame, bd =2,width=12,justify=RIGHT)
A_generated.pack(side = RIGHT)
A_generated.focus_set()
在您当前的代码中,您没有将A_generated
声明为Entry
的实例,而是将其声明为字符串。
答案 1 :(得分:0)
...即时通讯试图填写条目名称......
你不能也不应该这样做。生成的变量名称几乎总是比它们的价值更麻烦。您可能认为您正在创建名为A_1,B_1等的变量,但您只是重新分配A_generated。首先,A_generated是字符串“A_1”,然后将其更改为小部件名称。你不最终得到一个指向小部件的名为A_1的变量。
如果要根据变量x
的值创建对小部件的引用,则应使用字典。例如:
A[x] = Entry(...)
B[x] = Entry(...)
有了这个,A[1]
将引用一个小部件,B[1]
也是如此,依此类推。 (尽管您必须首先创建一个名为A,B等的全局变量)。