如何在 Python 中用 tkinter 的两个缩放滑块的值移动缩放滑块的滑块?

How to move the slider of scale slider with the value of two scale slider with tkinter in Python?

我想在 Python 中的 tkinter 中制作三比例滑块,我可以在其中移动前两个滑块,而第三个滑块作为前两个滑块值的总和自行移动

我尝试使用以下代码将前两个的值设置为第三个。

from tkinter import *
master = Tk()
#First Scale
w1=Scale(master, from_=0, to=100,orient=HORIZONTAL) 
w1.pack() 
#Second Scale
w2=Scale(master, from_=0, to=200,orient=HORIZONTAL) 
w2.pack() 

#Third Scale where sum has to be shown
w3=Scale(master, from_=0, to=300,orient=HORIZONTAL) 
w3.set(w1.get()+w2.get())
w3.pack() 
mainloop()

预期是移动前两个滑块,第三个滑块将自身移动到前两个滑块值之和的值。

您可以创建两个 IntVar 作为前两个 Scale 的变量,然后跟踪更改并设置第三个 Scale.

from tkinter import *
master = Tk()
#First Scale
w1_var = IntVar()
w1=Scale(master, from_=0, to=100, variable=w1_var, orient=HORIZONTAL)
w1.pack()
#Second Scale
w2_var = IntVar()
w2=Scale(master, from_=0, to=200, variable=w2_var, orient=HORIZONTAL)
w2.pack()   

#Third Scale where sum has to be shown
w3=Scale(master, from_=0, to=300,orient=HORIZONTAL,state="disabled")
w3.pack()

def trace_method(*args):
    w3.config(state="normal")
    w3.set(w1.get() + w2.get())
    w3.config(state="disabled")

w1_var.trace("w", trace_method)
w2_var.trace("w", trace_method)

master.mainloop()