【问题标题】:How to update a Scale widget with the value from another Scale widget如何使用来自另一个 Scale 小部件的值更新 Scale 小部件
【发布时间】:2015-11-24 16:39:40
【问题描述】:

我正在尝试动态更新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:\Python27\lib\lib-tk\Tkinter.py", line 1486, in __call__
    return self.func(*args)
TypeError: test() takes no arguments (1 given)

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

【问题讨论】:

  • 试试def test(variable):
  • noob 错误...谢谢伙计!它奏效了

标签: python tkinter widget slider tkinter-scale


【解决方案1】:

Scale 向函数发送新值

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

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

one_variable = DoubleVar()

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
相关资源
最近更新 更多