试图在ord中执行一组函数

2024-03-29 12:35:22 发布

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

我是一个Python noob,我正在尝试制作一个清洗设备,用Python编程接口。现在,机器应该是这样工作的:

  1. 告诉我洗好了吗
  2. 干燥
  3. 告诉我烘干完成了

为此,在输入清洗/干燥时间后,按下一个按钮:

button1 = Button(window.tk, command = lambda:main_process(int(varWashtime.get()), int(varDrytime.get())))

def main_process(wash_seconds,dry_seconds):
        wash(wash_seconds)
        stop_wash()
        dry(dry_seconds)
        stop_dry()
        return

def wash(seconds):
    varWashStarted.set("Washing Started") 
    Timer(seconds,idle_fnc).start() 
    return

def stop_wash():
    varWashStarted.set("Washing Stopped")
    Timer(3,idle_fnc,()).start()
    return

def dry(seconds):
    varDryStarted.set("Drying Started")
    Timer(seconds,idle_fnc,()).start()
    return

def stop_dry():
    varDryStarted.set("Drying Stopped")
    return

def idle_fnc():
    pass
    return

在这里,我使用函数idle_fnc使threading.Timer正常工作。你知道吗

我发现我可以用Timer一个接一个地调用其他函数,但我更喜欢从一个函数返回,然后分支到一个新函数。你知道吗

我的问题是,当我点击按钮时,整个过程都在执行而没有等待;我立即看到相应标签上的“清洗停止”和“干燥停止”,没有触发延迟。你知道吗

有什么问题?你知道吗


Tags: 函数returnmaindefprocess按钮startdry