0

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

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

4

1 回答 1

0

您可以为前两个创建两个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()
于 2019-09-10T10:38:34.473 回答