如何交替运行脚本?

2024-09-30 22:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个脚本,一个叫做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.pytimer.pyscore.py→ 结束,所以它与脚本实际关闭的方式有关),但我真的不知道如何解决这个问题,或者如何用不同的方式做得更好

(因为我删掉了一些东西,所以帖子格式中的缩进有点错误,但我在脚本中检查了它们,它们很好。)


Tags: 用户py程序脚本iftkinterdef计时器