当分辨率 > 1 时,Tkinter 缩放并浮动

jer*_*y_c 5 python tkinter python-3.x

当分辨率高于 1 时,如何从 Scale 获取浮点值?如果我将分辨率设置为低于 1,例如 0.9,则 Scale 将给出浮点数。大于1,我只能得到整数。

示例代码:

from tkinter import *

root = Tk()

var = DoubleVar()
scale = Scale(root, variable=var, resolution=3.4)
scale.pack()

label = Label(root, textvariable=var)
label.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我在 Windows 7 上使用 Python 3.4.1 64 位。

use*_*197 3

Scale() 小部件 MVC 视觉部分的问题

DoubleVar()不允许控制Scale()(小数位深度)的 UI 呈现(视觉部分),而模型部分保持正确(虽然隐藏,但可能会通过检查aScaleINSTANCE.get())。

解决方法模型:

from tkinter import *                     # python 3+

root = Tk()
varAsTxt = StringVar()                    # an MVC-trick an indirect value-holder
aScale = Scale( root,
                variable   = varAsTxt,    # MVC-Model-Part value holder
                from_      = -10.0,       # MVC-Model-Part value-min-limit
                to         =  10.0,       # MVC-Model-Part value-max-limit
                length     = 600,         # MVC-Visual-Part layout geometry [px]
                digits     =   4,         # MVC-Visual-Part presentation trick
                resolution =   0.23       # MVC-Controller-Part stepping
                )
aScale.pack()
root.lift()
Run Code Online (Sandbox Code Playgroud)