Python 如何在离散步骤中使用tkinter slider'Scale'小部件?

Python 如何在离散步骤中使用tkinter slider'Scale'小部件?,python,tkinter,slider,tkinter-scale,Python,Tkinter,Slider,Tkinter Scale,是否可能有一个滑块(Scaletkinter中的小部件),其中操作滑块时显示的可能值是从列表中读取的离散值 我的列表中的值不是偶数步数,并且取决于具体情况 从我看到的所有示例中,可以指定最小值、最大值和步长值(一次n个值),但我的列表可能如下所示: list=['0', '2000', '6400', '9200', '12100', '15060', '15080'] 举个例子。再次重申,我希望在拉动滑块时,从示例列表[0]转到列表[1],或从列表[6]转到列表[5] 如果有人有任何其他建议

是否可能有一个滑块(
Scale
tkinter中的小部件),其中操作滑块时显示的可能值是从列表中读取的离散值

我的列表中的值不是偶数步数,并且取决于具体情况

从我看到的所有示例中,可以指定最小值、最大值和步长值(一次n个值),但我的列表可能如下所示:

list=['0', '2000', '6400', '9200', '12100', '15060', '15080']
举个例子。再次重申,我希望在拉动滑块时,从示例列表[0]转到列表[1],或从列表[6]转到列表[5]


如果有人有任何其他建议,可以轻松地从列表中的数百个项目中选择一个值,我洗耳恭听。我尝试了
选项菜单
小部件,但它很难查看。

编辑您可以将滑块的命令设置为回调,让回调将当前值与列表进行比较,然后通过调用滑块上的set()跳转到最近的值

因此:

以及:

编辑: 显示完整的(但简单的示例)


我已经在python 2.7.6和3.3.2中对此进行了测试,即使在拖动滑块时,也会跳到鼠标当前所在位置的最近值,而不是仅在松开滑块时才跳。

谢谢您的建议,虽然我在实现iti时遇到了问题,但我已经添加了一个完整的示例来向您展示它应该如何工作,并让您尝试一下。这是一个天才的解决方案。真不敢相信我竟然想不出来
slider = Slider(parent, from_=0, to=100000, command=callback)
def callback(event):
    current = event.widget.get()
    #compare value here and select nearest
    event.widget.set(newvalue)
try:
    import tkinter as tk
except ImportError:
    import Tkinter as tk

valuelist = [0,10,30,60,100,150,210,270]

def valuecheck(value):
    newvalue = min(valuelist, key=lambda x:abs(x-float(value)))
    slider.set(newvalue)

root = tk.Tk()

slider = tk.Scale(root, from_=min(valuelist), to=max(valuelist), command=valuecheck, orient="horizontal")

slider.pack()

root.mainloop()