【问题标题】:Problems with Tkinter Entry and .get()Tkinter 条目和 .get() 的问题
【发布时间】:2012-10-31 10:02:07
【问题描述】:

我的 Tkinter Entry 小部件出现问题。 我只是在测试一些东西,并且想让我的回调打印出我在 Entry self.a 中输入的任何内容。但我收到了这个错误。

调用中的文件“C:\Python27\lib\lib-tk\Tkinter.py”,第 1410 行 返回 self.func(*args) 文件“C:/Users/Andy/testimage.py”,第 146 行,在 get print a.get(self) NameError: global name 'a' is not defined

我想知道是否有人可以告诉我我做错了什么。我正确链接了回调函数,因为如果我让它打印“aasdfasd”,它会在我按下按钮时打印出来。

def clicked_wbbalance(self):
    self.top = Toplevel()
    self.top.title("LASKJDF...")
    Label(self.top, text="Enter low level").grid(row=0, column=0,padx=10)
    Label(self.top, text="Enter high level").grid(row=1, column=0,padx=10)
    Label(self.top, text="Values must be between 0 to 255").grid(row=3, column=0)
    Button(self.top, text="Ok", command=self.get).grid(row=3, column = 1)

    self.a =Entry(self.top).grid(row=0, column=1,padx=10)
    self.b =Entry(self.top).grid(row=1, column=1,padx=10)

def get(self):
    print self.a.get(self)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    正如 RocketDonkey 所指出的,您的回溯与您发布的代码不匹配。

    您编写的代码将生成这样的回溯:

    AttributeError: 'NoneType' object has no attribute 'get'
    

    根本问题是grid 返回None。这意味着属性ab 将是None,因为它们被分配了调用grid 的结果。通过将对象创建和小部件放置在不同的行上来解决这个问题:

    self.a = Entry(self.top)
    self.b = Entry(self.top)
    
    self.a.grid(row=0, column=1,padx=10)
    self.b.grid(row=1, column=1,padx=10)
    

    【讨论】:

      【解决方案2】:

      您回溯说print a.get(self) NameError: global name 'a' is not defined,但您发布的代码使用语法print self.a.get(self)(这似乎是正确的)。因此,如果您检查第 146 行,您不会在 a 前面加上 self,这意味着您不是引用实例的属性 a,而是尝试单独引用 a,这不是定义。尝试在第 146 行的a 前面添加self,看看问题是否仍然存在。

      【讨论】:

      • 您好,感谢您的回复。第 146 行是我在我的 OP 中发布的代码的最后一行,它前面已经有 self 我想知道是否可能是因为我正在使用 self.top?这是我第一次使用它,所以我不确定它是否会影响任何东西。
      • @user1730056 嗯,这很奇怪,因为您的回溯显示了确切的行,但前面没有 self。保存代码后回溯是否仍然相同?您至少应该看到包含print self.a.get(self) 的错误。
      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2020-09-18
      • 1970-01-01
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多