Python Tkinter:你如何放置一个可以随时更新的文本字段?

Python Tkinter:你如何放置一个可以随时更新的文本字段?,python,callback,tkinter,nameerror,Python,Callback,Tkinter,Nameerror,我希望能够操纵一个将在Tk窗口中实时显示的整数 我试过: xp = StringVar() Label(master, textvariable=xp).pack() xp.set(0) 后来,我试着: xp.set(xp+1) 但它在这一行上失败得很惨,它传达了这样一个信息: Exception in Tkinter callback File "/usr/lib/.../Tkinter.py", line 1413, in __call__ return self.func(*arg

我希望能够操纵一个将在Tk窗口中实时显示的整数

我试过:

xp = StringVar()
Label(master, textvariable=xp).pack()
xp.set(0)
后来,我试着:

xp.set(xp+1)
但它在这一行上失败得很惨,它传达了这样一个信息:

Exception in Tkinter callback
File "/usr/lib/.../Tkinter.py", line 1413, in __call__
  return self.func(*args)
File "rpg.py", line 26, in fight
  xp.set(xp+1)
NameError: global name 'xp' is not defined
我希望能够增加“xp”值,并在窗口中实时显示。我还希望能够将“xp”作为一个整数进行操作,包括乘法和指数等


因此,如果您能指出我做得不对,我会很高兴。

在我看来,第一个代码段中的
xp
变量的范围不包括第二个代码段。这意味着它们实际上是不同的变量(恰好有一个非常相似的名称),因此第二个代码段在运行时没有
StringVar
accessible的句柄,这是行不通的。

是的,它在同一个类中,但是一个不同的函数。如何声明变量,以便在一个类中的多个函数中使用它?@thatbennyguy您可以将变量指定给“self”,这样您就可以从类中的任何位置访问它。只需将“xp”替换为“self.xp”。根据我的记忆(作为一名非Python程序员,请小心!)将
xp
替换为
self.\uu xp