在某些情况下,Tkinter 比例小部件被称为'int'



我知道全局变量不是好程序的最佳选择,但为了完成这个简短的编程任务,我正在使用它们。我想更新线程或键绑定调用的函数内部的tkinter-scale小部件。然而,当我试图在这两个函数中使用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)

但当我试图在绑定键调用的函数中使用scale实例时,它会给我这个错误,

(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函数,该代码被省略了,因为我相信它能完美工作。

有人能给我一些建议吗?我很失落,因为我以前从未遇到过这样的事情。

谢谢。

后来发现我在代码中重用了'w'作为值,因此重新广播了该值并给出了属性错误。这个问题解决了。

感谢James Kent帮我做这件事!

最新更新