Tkinter scale / slider .get值未在函数中更新

问题描述

我正在使用Tkinter创建一个倒数计时器GUI,用户可以使用内置的比例尺功能选择倒数的秒数。倒计时本身似乎正在工作,但是即使将滑块向上移动,它也会从最低的('from_')值40开始倒数​​。我试图将.get()值更改为局部变量,然后将其放入功能,倒数计时将不再起作用,而仅显示滑块设置为的数字(尽管现在它会根据用户输入而改变)。我将在下面粘贴代码,以期消除任何歧义。同样,在没有全局变量且仅在函数外部使用变量的情况下尝试创建该错误(分配前已引用)。任何帮助表示赞赏。下面的代码是本地变量版本:

window = tk.Tk()
window.configure(bg='black')
window.title('TUT Timer')

slider = tk.Scale(window,from_=40,to=60,fg='#39FF14',bg='black',orient=HORIZONTAL)
slider.grid(sticky='nsew')
time_var = slider.get()

def timer():
    time_var = slider.get()
    if time_var > 0:
        time_label.config(text=time_var)
        time_var = time_var  -1
        time_label.after(1000,timer)
    elif time_var == 0:
        time_label.config(text='0')
    

def start_button():
    timer()

start = tk.Button(text='Start',command=start_button,fg='#39FF14')
start.grid()

time_label = tk.Label(text = '00:00',height = 3,bg= 'black',fg= '#39FF14')
time_label.config(font=('Courier New',20))
time_label.grid(sticky='nsew')
window.mainloop()

在使用全局变量的地方,代码是相同的,但是在计时器函数中使用global time_var上方或代替time_var = slider.get()(两者都尝试过,以代替创建工作倒计时但不启动)在比例值上。

总而言之,运行了两个版本的代码,但没有一个完全起作用。一个使用全局变量,但是缩放功能.get不会根据滑块的变化而变化。另一个选项使用相同的变量,但用作局部变量,其结果是仅显示开始编号而不是倒数开始。 如果可以的话,感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)