如何从Tkinter滑块获取值?

7 投票
3 回答
45809 浏览
提问于 2025-04-17 13:34

这是我写的代码,当我运行它的时候,滑块上方会显示出滑块的值。我在想,有没有办法把这个值提取出来呢?也许可以把它赋值给一个变量a。;)

from Tkinter import *

control = Tk()
control.geometry("350x200+100+50")

scale = Scale(control,orient=HORIZONTAL,length=300,width=20,sliderlength=10,from_=0,to=1000,tickinterval=100)
scale.pack()

control.mainloop()

3 个回答

0

我不知道你最后是否解决了这个问题,但我做过一个类似的应用程序,用于机器人控制。在图形界面(GUI)声明和初始化之后,基本代码是这样的: scale(blahblahblah) Scale.grid(blahblah)

Def forward():
    motor1.forward(scale.get())
    motor2.backward(scale.get())

记住:速度值需要是1的百分比,所以把比例设置为:从0到1,间隔可以是0.01或0.1(我用了0.1来表示我的速度变量的十分之一)

13

使用 .get() 方法来获取滑块当前的值:

print scale.get()

可以查看 Tkinter Scale 组件 的相关文档。

16

为了在值被修改时获取它,你需要把一个函数和参数 command 关联起来。这个函数会接收到当前的值,所以你只需要对这个值进行操作。还有一点要注意的是,你的代码中有 cline3 = Scale(...).pack()。在这种情况下,cline3 总是会是 None,因为 pack() 返回的就是 None。

import Tkinter

def print_value(val):
    print val

root = Tkinter.Tk()

scale = Tkinter.Scale(orient='horizontal', from_=0, to=128, command=print_value)
scale.pack()

root.mainloop()

撰写回答