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

时间:2011-08-08 01:56:49

标签: 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(*args)
File "rpg.py", line 26, in fight
  xp.set(xp+1)
NameError: global name 'xp' is not defined

我希望能够增加“xp”值,并在窗口中实时显示。我还希望能够将“xp”作为一个整数来操作,使用乘法和指数等等。

所以,如果你能指出我做错了什么,那么我会很高兴。

1 个答案:

答案 0 :(得分:3)

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