我有两个脚本,一个叫做timer.py
,另一个叫做score.py
timer.py
是在Tkinter中完成的一个简单计时器,它与倒计时功能一起工作。在该函数的末尾插入一个检查,如果计时器仍然高于零,则使用root.after(t)
方法更新计时器,如果完成,则调用score.py
脚本:
import score
def countdown(t):
#timer
#...
if t > 0:
TimerRoot.after(1000, countdown, t-1)
if t == 0:
score
TimerRoot.destroy()
#rest of the timer widgets
#...
countdown(3600)
TimerRoot.mainloop()
score.py
脚本是另一个Tkinter窗口,它要求用户输入一个数字(然后存储),程序根据该数字自动计算分数。它还有一个复选框,如果选中该复选框,则通过ChkVar
变量(Tkinter小部件的IntVar)与程序通信,表明这是用户最后一次执行循环,并且在按下“提交”按钮时,会被激活,如下所示:
import timer
def check(ChkVar):
if ChkVar.get() == 0:
timer
else:
return
def Submit():
check(ChkVar)
ScoreRoot.destroy()
Submit = tk.Button(ScoreRoot, text='Submit!', command=Submit)
#rest of the score widgets
#...
ScoreRoot.mainloop()
timer.py
脚本首先执行,因此在倒计时结束时调用score.py
,当它获得用户输入并再次按下按钮时调用timer.py
,但此时,当倒计时停止而不是调用score.py
时,脚本结束,没有任何错误
我认为这是因为第一次调用的score.py
没有正确关闭,所以当它再次被调用时,它会自动关闭,整个程序都会结束(我尝试先启动score.py
脚本,同样的情况发生了:score.py
→ timer.py
→ score.py
→ 结束,所以它与脚本实际关闭的方式有关),但我真的不知道如何解决这个问题,或者如何用不同的方式做得更好
(因为我删掉了一些东西,所以帖子格式中的缩进有点错误,但我在脚本中检查了它们,它们很好。)
目前没有回答
相关问题 更多 >
编程相关推荐