2016-04-25 2 views
-1

Я пытаюсь добавить виджет 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() 
+2

Похоже, что есть что-то, что затормозит вашу программу, когда разрешение плавает, что очень сложно отладить, не видя больше кода, попробуйте построить [MCVE] (http://stackoverflow.com/help/mcve). –

+1

Начните с включения кода 'self.sliderMoved' и попробуйте добавить инструкции печати в разных точках. Если проблема возникает только при попытке перемещения слайдера, проблема может быть там. –

+0

''1,0'' не представляет число. – TigerhawkT3

ответ

0

Я только что обновил для Ubuntu 16.04, и кажется, что эта проблема не появляется больше (Python 2.7.11+).

Смежные вопросы