如何在 Python 中使用 tkinter 移动具有两个比例滑块值的比例滑块的滑块?



我想在 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()

最新更新