При нажатии на кнопку немедленно прервать выполнение указанной функции

Помогите с решением. Нужно, чтобы после нажатия на клавишу "s" или кнопку STOP, выполнение функции mainProc() тут же прерывалось. То есть, чтобы эта функция, которая "рисует" курсором квадрат не дорисовывала его до конца, если в этот момент была нажата кнопка.

import time
import keyboard
import pyautogui
import threading
from tkinter import *


root = Tk()
root.title("Label")


time.sleep(0.5)


stop = True


def button_stop_command():
    global stop
    stop = True


def button_start_command():
    global stop
    if stop == True:
        stop = False
        while stop == False:
            mainProc()


def button_starter():
    t = threading.Thread(target=button_start_command)
    t.start()


button_start = Button(root, text="START", padx=30, pady=20, command=button_starter)
button_start.grid(columnspan=1, row=1,column=0)

button_stop = Button(root, text="STOP", padx=32, pady=20, command=button_stop_command)
button_stop.grid(row=2, column=0)


keyboard.add_hotkey('a', button_starter)
keyboard.add_hotkey('s', button_stop_command)


def mainProc():
    pyautogui.move(150, 0, 0.5, pyautogui.easeOutQuad)
    pyautogui.move(0, 150, 0.5, pyautogui.easeOutQuad)
    pyautogui.move(-150, 0, 0.5, pyautogui.easeOutQuad)
    pyautogui.move(0, -150, 0.5, pyautogui.easeOutQuad)


root.mainloop()

Ответы (0 шт):