Как распечатать значение слайдера tk каждый раз, когда он обновляется? - PullRequest
0 голосов
/ 24 сентября 2018

В моей программе на Python есть слайдер tk, и я пытаюсь получить его значение каждый раз, когда перемещаю его.Программа считывает начальное значение слайдера, но это все, что считывается.Вот мой код:

valuelist[50, 100, 150, 200]
class MainApp(Frame):
    def valuecheck(val, self, scale):
        scalepic = scale
        print scalepic.get()
    def createControls(self):
        scalepic = Scale(self, from_=min(valuelist), to=max(valuelist), resolution = 25, orient=HORIZONTAL)
        scalepic.set(100)
        scalepic.configure(command = self.valuecheck(val, scalepic))
        scalepic.pack()
    def __init__(self, parent):
        Frame.__init__(self, parent, width = 800, height = 600)
        self.pack()
        self.createControls()

Я попытался добавить это в тело valuecheck:

newval = min(valueList, key=lambda x:abs(x-float(val)))
scalepic.set(newval)
print newval

и избавился от опции разрешения при определении scalepic.Я также попытался передать scalepic.get () в качестве аргумента для val.Я также попытался удалить val в качестве аргумента в valuecheck Что еще мне следует попробовать?

1 Ответ

0 голосов
/ 24 сентября 2018

Не назначайте функцию на command.Используйте lambda.

scalepic.configure(command = lambda :self.valuecheck(scalepic))

. Но также отредактируйте свою функцию:

def valuecheck(self, scale):

Поскольку val.

не требуется.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...