我希望能够动态调整下面的浮点数值旋转框 ( spin1
) 的增量。为此,我创建了第二个旋转框 ( spin2
),它具有值(0.1, 0.01, 0.001, 0.0001)
,它确定 的步长spin1
。
只要我总是从较粗的增量移动到较细的增量,这很好用。当我尝试从更精细的增量移动到更粗的增量时,它会失败,因为该值会被截断为增量的精度。
使用下面的代码,可以重现问题:
我希望看到 中的值0.11
,spin1
但我看到的是0.1
。为什么会发生这种情况,我该如何解决?
from tkinter import Tk, Spinbox
def update():
spin1['increment'] = float(spin2.get())
window = Tk()
spin1 = Spinbox(window, from_=0.0, to=10.0, increment=0.1)
spin2 = Spinbox(window, values=(0.1, 0.01, 0.001, 0.0001), command=update)
spin1.pack()
spin2.pack()
window.mainloop()
补充观察:
- 微调器总是截断值而不是舍入。因此,如果在步骤 3
spin1
中设置为2.6
,最终结果仍然是0.1
,而不是0.2
。