@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 не реагирует на ввод. Завершить процесс можно только в терминале
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
sanya84
@sanya84
Попробуйте threading или subprocess
Вам надо функцию start() запустить в потоке.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
Marilyn Москва
от 100 000 до 160 000 руб.
21 авг. 2018, в 14:23
350000 руб./за проект
21 авг. 2018, в 13:54
5000 руб./за проект
21 авг. 2018, в 13:30
5000 руб./за проект