@khaziev_m

Как остановить выполнение скрипта по расписанию schedule в tkinter?

Как остановить задачу запущенную по расписанию...
import schedule
...
def main():
    factories = get_factory()
    for factory in factories:
        parser_factory = ParserFactory(factory)
        parser_factory.update_db_with_parser()


def run_schedule():
    schedule.every(10).seconds.do(main)

    while True:
        schedule.run_pending()
        time.sleep(1)

...здесь:
from tkinter import *
import parser


def start():
    parser.seller_id = entry.get()
    parser.run_schedule()


def delete():
    entry.delete(0, END)

root = Tk()
# WxH+X+Y
root.geometry('320x240+720+360')
root.title('Parser GUI')

# поле ввода
entry = Entry(root)
entry.insert(0, 'Введите идентификатор')
entry.pack(side=TOP, expand=YES, fill=X)
# избавить от необходимости выполнять щелчок мышью
entry.focus()
# при нажатии клавиши Enter
entry.bind('<Return>', lambda event: start())
# при двойном щелчке левой кнопки мыши в поле ввода
entry.bind('<Double-1>', lambda event: delete())
# кнопка Start
start_btn = Button(root, text='Начать', command=start)
start_btn.pack(side=LEFT, expand=YES)
# кнопка Stop
stop_btn = Button(root, text='Остановить')
stop_btn.pack(side=RIGHT, expand=YES)

root.mainloop()

После нажатия кнопки "Начать" окно GUI не реагирует на ввод. Завершить процесс можно только в терминале
  • Вопрос задан
  • 567 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Фанатик Python 3
Попробуйте threading или subprocess
Вам надо функцию start() запустить в потоке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы