tkinter创建动态变量命名Entry控件报AttributeError如何解决
问题根源
你遇到的AttributeError: 'NoneType' object has no attribute 'get'报错,核心是两个写法错误:
- Tkinter 所有布局方法(
grid()/pack()/place())都没有返回值,你把Entry(window,width=10).grid(row=1, column=1+i)的执行结果直接赋值给score_*变量,最终所有score_*变量拿到的都是None,自然无法调用get方法。 - 窗口标题设置写法错误,
window.title=("Score")是错误的属性赋值,正确的写法是调用title方法:window.title("Score")。
修正代码
from tkinter import * window = Tk() # 修正窗口标题调用方式 window.title("Score") window.geometry('1200x90') def total(): print(score_1.get()) # 先创建Entry对象存到变量,再单独调用grid布局 for i in range(9): globals()['score_{}'.format(i)] = Entry(window, width=10) globals()['score_{}'.format(i)].grid(row=1, column=1+i) #button b1=Button(window,text="total",command=total,fg="red",width=5) b1.grid(row=0,column=20,sticky="ew") window.mainloop()
内容的提问来源于stack exchange,提问作者AnaniasOD
相关产品推荐
相关产品推荐

