Tkinter cохранение значения в списке

Не могу настроить обновление виджета Scale по кнопке. Мне нужно, чтобы положение записывалось в список Scale по кнопке Safe и потом при нажатии кнопки Call меняло значение Scale.

from tkinter import *


window = Tk()
scale = Scale

var1 = DoubleVar()
label1 = Label(window, relief='groove', width=6)
scale1 = Scale(window, variable=var1, orient=HORIZONTAL)
scene1Btn = Button(window)
storepres1Btn = Button(window)
A = [10]
Labels = [label1]
Scales = [scale1]
Varlist = [var1]


# geometry
label1.grid()
scene1Btn.grid()
storepres1Btn.grid(row=1, column=1)
scale1.grid(row=0, column=1)


# Buttons
def recall1():
    Scales[0].set(A[0])
    pass


def storepres1():
    A[0] = Varlist[0]
    pass


# Initialize buttons
window.title("Extron Python Training")
label1.configure(textvariable=var1)
scene1Btn.configure(text='Call', command=recall1)
storepres1Btn.configure(text='Safe', command=storepres1)
window.mainloop()

Ответы (1 шт):

Автор решения: insolor

Здесь вы объект DoubleVar сохраняете в список:

A[0] = Varlist[0]

А тут этот объект пытаетесь установить как значение шкалы:

Scales[0].set(A[0])

В этот момент в консоль пишется вот это:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
    return self.func(*args)
  File "/home/insolor/Projects/scales.py", line 27, in recall1
    Scales[0].set(A[0])
  File "/usr/lib/python3.8/tkinter/__init__.py", line 3463, in set
    self.tk.call(self._w, 'set', value)
_tkinter.TclError: expected floating-point number but got "PY_VAR0"

То есть ожидалось число с плавающей точкой, а получен объект переменной tk.

Нужно получить значение из переменной с помощью метода get, потом сохранить его, тогда все заработает:

def storepres1():
    A[0] = Varlist[0].get()
→ Ссылка