我正在尝试将Tk.Scale小部件添加到我的应用程序中,但是我在将非整数值设置为resolution参数时遇到问题。如果我将整数值传递给Scale构造函数,它可以正常工作,但是对于任何非整数值(比如0.1),我的缩放小部件不会移动。它出现在正确的位置,看起来很好,但不会回应我试图移动它。
以下是与创建缩放小部件相关的代码:
self.sliderValue = Tk.DoubleVar()
self.slider = Tk.Scale(self.frame,
from_=float(self.lowerValue.get()),
to=float(self.upperValue.get()),
orient=Tk.HORIZONTAL,
length=180,
variable=self.sliderValue,
resolution=0.1, # Here is the problem
command=self.sliderMoved)
问题是我无法在我的应用程序之外重现此问题。换句话说,如果我只创建一个带有一个缩放小部件的简单窗口,它就可以使用任何分辨率值。所以似乎问题隐藏在这个构造函数调用之外的某个地方,但我无法弄清楚在哪里。可能有人有同样的问题,可以告诉我应该检查什么。
增加: 可能是重要的:在独立(工作)情况下,滑块上方的值为“1.0”格式(以点为分隔符),在我的应用程序中,它为“1,0”格式(逗号为分隔符)。可能会出现某种类型/格式不匹配的情况。
增加2:
这是最小的例子:
import Tkinter as Tk
from pylab import *
# cla() # if you uncomment these two lines,
# clf() # scale will break for non-int resolutions
root = Tk.Tk()
var = Tk.DoubleVar()
scale = Tk.Scale(root, from_=6.0, to=8.5, variable = var,
resolution=0.1, orient=Tk.HORIZONTAL)
scale.grid(column=0, row=0, columnspan=3)
root.mainloop()
答案 0 :(得分:0)
我刚刚更新到Ubuntu 16.04,似乎这个问题不再出现了(Python 2.7.11 +)。