-1

我知道全局变量对于好的程序来说并不是最好的,但为了这个简短的编程任务,我正在使用它们。我想更新由线程或键绑定调用的函数内部的 tkinter 缩放小部件。但是,当我尝试在其中任何一个函数中使用 scale.set(value) 方法时,python 出于某种原因将其解释为“int”。

在这种情况下没有问题:

w = tk.Scale(master=frame, from_=50, to=0)
w.set(0)
w.grid(column=1, row=1, sticky=W+N+E+S)

def test(x):
    global w
    w.set(x)

test(17)

但是当我尝试在绑定键调用的函数中使用缩放实例时,它给了我这个错误,

(File "TestingRoverMap.py", line 161, in test
    w.set(x)
AttributeError: 'int' object has no attribute 'set')

运行以下代码时:

w = tk.Scale(master=frame, from_=50, to=0)
w.set(0)
w.grid(column=1, row=1, sticky=W+N+E+S)

def upKey(event):
    global w
    w.set(48)

当您按下键盘上的向上方向键时会调用 upKey 函数,并且省略了该代码,因为我确信它可以完美运行。

谁能给我一些指示?我对此感到非常迷茫,因为我以前从未遇到过类似的事情。

谢谢。

4

1 回答 1

1

事实证明,我稍后在我的代码中重用了 'w' 作为一个值,以便重新转换该值并给我属性错误。这个问题就解决了。

于 2015-04-09T06:22:53.707 回答