为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Python中使用tkinter的两个刻度滑块的值移动刻度滑块的滑块?

如何在Python中使用tkinter的两个刻度滑块的值移动刻度滑块的滑块?

慕尼黑的夜晚无繁华 2022-05-24 15:57:46
我想在 Python 的 tkinter 中制作三个比例滑块,我可以在其中移动前两个滑块,第三个滑块移动自身作为前两个滑块值的总和我尝试使用以下代码,尝试将前两个的值设置为第三个。from tkinter import *master = Tk()#First Scalew1=Scale(master, from_=0, to=100,orient=HORIZONTAL) w1.pack() #Second Scalew2=Scale(master, from_=0, to=200,orient=HORIZONTAL) w2.pack() #Third Scale where sum has to be shownw3=Scale(master, from_=0, to=300,orient=HORIZONTAL) w3.set(w1.get()+w2.get())w3.pack() mainloop()期望是移动前两个滑块,第三个滑块将自身移动到前两个滑块值之和的值。
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您可以为前两个创建两个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()


查看完整回答
反对 回复 2022-05-24
  • 1 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信