如何从 Tkinter 滑块(“Scale”)中获取价值?

Posted

技术标签:

【中文标题】如何从 Tkinter 滑块(“Scale”)中获取价值?【英文标题】:How to Get Value Out from the Tkinter Slider ("Scale")? 【发布时间】:2013-01-08 15:28:36 【问题描述】:

所以,这是我的代码,当我运行它时,滑块的值出现在滑块上方,我想知道有没有办法得到这个值?也许让 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()

【问题讨论】:

【参考方案1】:

调用滑块上的.get()方法读取当前值:

print scale.get()

请参阅Tkinter Scale widget 文档。

【讨论】:

【参考方案2】:

要获取修改后的值,请将函数与参数command 关联。此函数将接收当前值,因此您只需使用它即可。另请注意,在您的代码中,您有 cline3 = Scale(...).pack()。在这种情况下,cline3 始终为 None,因为这是 pack() 返回的内容。

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()

【讨论】:

太好了,谢谢你如何将“val”的值分配给变量,因为我在我的程序中将它作为速度控制栏,我需要一个变量(“速度”)在我的程序的其他部分使用 val 的值。非常感谢您的宝贵时间。 在这种情况下,您似乎只想致电scale.get()。或者您是否想在修改比例小部件的值时在其他地方修改值?在这种情况下,您只需在 print_value 函数中执行此操作即可。我需要了解有关您当前问题的更多详细信息以提供进一步帮助。 您可以在函数print_value 中编写代码,以便您可以访问变量val【参考方案3】:

如果你最终解决了问题或者没有给出年龄,我想知道:但我为机器人控制做了一个类似的应用程序。 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 表示速度变量的十分之一)

【讨论】:

以上是关于如何从 Tkinter 滑块(“Scale”)中获取价值?的主要内容,如果未能解决你的问题,请参考以下文章

Python-Tkinter 窗口组件之Scale

如何从 tkinter 滑块/刻度重复输出,以便我可以通过串行向另一台设备发送恒定的数字流?

Tkinter规模小部件不实时更新

如何在 Python 的 Tkinter 的类中使用 slider.on_changed()

Tkinter 滑块和 Raspberry Pi 4 GPIO 接口

mui 滑块开关 进度条 以及如何获取值