如何使用另一个缩放小部件的值更新缩放小部件



我正在尝试动态更新Scale小部件的值,以便它将其值更改为另一个Scale小部件的价值。为了理解Scale.set()方法是如何工作的,我尝试了这样的方法:

from Tkinter import *
def sel():
   selection = "Value = " + str(varX.get())
   label.config(text = selection)
def test():
    toScale = varX.get()
    scaleY.set(toScale)   

root = Tk()
varX = DoubleVar()
varY = DoubleVar()
scaleX = Scale(root, variable = varX, command=test)
scaleX.pack(anchor=CENTER)
scaleY = Scale(root, variable = varY)
scaleY.pack()
button = Button(root, text="Get Scale Value")
button.pack(anchor=CENTER)
label = Label(root)
label.pack()
txt = Entry(root)
txt.pack()
root.mainloop()

但当我尝试运行时,我得到了:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:Python27liblib-tkTkinter.py", line 1486, in __call__
    return self.func(*args)
TypeError: test() takes no arguments (1 given)

当我将command关键字参数传递给按钮时,它可以正常工作。这里有什么问题?我认为这一切都与Scale小部件及其方法有关。我对他们不太满意,任何帮助我都会感激的。

Scale向函数发送新值

def test(value):
    scaleY.set(value)

我认为你可以使用一个变量来获得相同的结果

one_variable = DoubleVar()
scaleX = Scale(root, variable=one_variable)
scaleY = Scale(root, variable=one_variable)

最新更新