如何从 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”)中获取价值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 tkinter 滑块/刻度重复输出,以便我可以通过串行向另一台设备发送恒定的数字流?
如何在 Python 的 Tkinter 的类中使用 slider.on_changed()