如何解决Tkinter中从Entry对象获取数据时txt未定义的报错
问题修复方案
报错原因
报错由两个语法问题共同导致:
__init__方法中定义的txt是局部变量,仅在__init__执行周期内有效,类的其他方法无法直接访问- 类的实例方法
clicked缺少第一个必填参数self,无法绑定实例的属性和方法
修复方法
- 将Entry控件绑定到实例对象上,命名为
self.txt,类的所有方法都可以通过self访问这个控件 - 给
clicked方法加上self参数,调用输入框取值方法时改为self.txt.get()
修复后的完整可运行代码如下:
import tkinter from tkinter import Entry, Button class App(): def __init__(self): self.root = tkinter.Tk() self.root.geometry("400x250") # 控件绑定到实例属性 self.txt = Entry(self.root,width=20) self.txt.grid(column=1, row=3) btn = Button(self.root, text="Click Me", command= self.clicked) btn.grid(column=2, row=0) self.root.mainloop() def clicked(self): # 通过self读取实例上的控件内容 res = self.txt.get() print(res) app = App()
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

