"Not Responding" 在运行中

"Not Responding" while in function

我尝试使用 tkinter 创建一个 python 脚本,它将每 170 秒移动一次我的鼠标(预期,代码中测试 17 秒)。
目标:
我想要 2 个按钮:

import time
import tkinter as Tk
root = Tk.Tk()

root.title("MouMo")
root.geometry("300x100")
root.configure(bg='white')

def turnon():
    onbtn['state'] = Tk.DISABLED
    while ( onbtn['state'] == Tk.DISABLED ) :
        pyautogui.moveRel(0, 30, duration=1)
        pyautogui.moveRel(0, -30, duration=1)
        time.sleep(17)
            

def turnoff():
    onbtn['state'] = Tk.NORMAL

onbtn = Tk.Button(root, text="ON", padx=50, command = turnon)
offbtn = Tk.Button(root, text="OFF", padx=50, command = turnoff)

onbtn.pack(side="left")
offbtn.pack(side="right")

root.mainloop()

提前感谢您的帮助!

不建议在 tkinter 应用程序中使用 while 循环和 time.sleep(),因为它会阻止 tkinter mainloop() 处理未决事件和更新。

使用.after()替换while循环和sleep():

def turnon(first=True):
    if first:
        onbtn['state'] = Tk.DISABLED
        onbtn.update_idletasks() # make the state updated immediately
    if onbtn['state'] == Tk.DISABLED:
        pyautogui.moveRel(0, 30, duration=1)
        pyautogui.moveRel(0, -30, duration=1)
        # execute turnon() after 17 seconds
        onbtn.after(17000, turnon, False)