关于python:tkinter类中的事件,函数名称未定义

Event in a tkinter class, function name not defined

当我尝试使用Tkinter类制作微型计算器时,解释器返回" NameError:未定义名称'evaluate'"错误代码。 我还尝试在" def init"之前定义函数评估,但它仍然无法正常工作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from tkinter import *

class App(Tk):
    def __init__(self):
        Tk.__init__(self)

        self.entree = Entry(self)
        self.chaine = Label(self)

        self.entree.bind("<Return>", evaluate)

        self.entree.pack()
        self.chaine.pack()

    def evaluate(self, event):
        self.chaine.configure(text="Result =" + str(eval(self.entree.get())))

app = App()
app.mainloop()

谢谢你的帮助!


evaluateApp类中的方法。 使用其self成员可以在类内部的任何位置访问该方法。 self是初始类对象本身,没有该成员,您将无法访问类内部的任何内容(方法,变量等)。 因此,您应该使用:

1
2
3
#<---code---->
self.entree.bind("<Return>", self.evaluate)
#<---code---->