Я пытаюсь добавить виджет Tk.Scale к моему приложению, но у меня есть проблема с установкой нецелого значения в параметр разрешения. Если я передаю целое число , то он работает правильно, но с любым нецелым значение (скажем 0,1), мой масштабный виджет не перемещается. Он появляется в нужном месте и выглядит просто отлично, но не реагирует на мои попытки его перемещения.Виджет шкалы Tkinter с нецелым разрешением
Вот мой код, связанный с созданием масштабного виджета:
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()
Похоже, что есть что-то, что затормозит вашу программу, когда разрешение плавает, что очень сложно отладить, не видя больше кода, попробуйте построить [MCVE] (http://stackoverflow.com/help/mcve). –
Начните с включения кода 'self.sliderMoved' и попробуйте добавить инструкции печати в разных точках. Если проблема возникает только при попытке перемещения слайдера, проблема может быть там. –
''1,0'' не представляет число. – TigerhawkT3