最近我遇到了一个问题。在这个程序中,我写了一个例子,按钮激活“第一”功能,它增加了1到变量“a”,当它变成3时,它应该改变“b”的值为2。当“B”等于2时,它应该激活另一个名为“second”的函数,该函数应该在1秒后将此变量变为10。但“第二”功能不起作用。我该如何解决此问题?
from tkinter import *
import time
root = Tk()
root.geometry("500x500")
root.resizable(False, False)
a = 0
b = 0
labelA = Label(text=a, font="Arial 32")
labelA.pack()
labelB = Label(text=b, font="Arial 32")
labelB.pack()
def first():
global a, b
a+=1
labelA["text"] = a
if a==3:
b+=2
labelB["text"] = b
else:
pass
def second():
global b
if b==2:
time.sleep(1)
b==10
labelB["text"] = b
second()
button = Button(command=first, width=30, text="click to do something")
button.pack()
root.mainloop()
我期待功能“第二”被激活,但它没有激活
4条答案
按热度按时间deyfvvtc1#
函数
second
仅在脚本启动时执行一次。所以它不会将b
更改为10
。您可以将second
函数的内容移动到first
:w6lpcovy2#
因为你只在程序开始时调用函数
second
一次。也许你可以在函数first
的末尾添加second()
。并将函数second
中的语句b==10
更正为b=10
。svgewumm3#
如果你想在一段时间后执行函数,你可以在
Tkinter
中使用root.after
。修改后的功能将是:请注意,我们在
second
后面不使用括号。xtupzzrd4#