分辨率>时,Tkinter缩放和漂浮1

时间:2014-08-18 11:11:30

标签: python python-3.x tkinter

当分辨率高于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()

我在Windows 7上使用64位64.4版。

1 个答案:

答案 0 :(得分:0)

使用Scale()小部件MVC Visual-part

进行故障

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