Графический интерфейс Tkinter зависает при запуске цикла с расписанием - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть кнопка в моем графическом интерфейсе, которая запускает процесс с циклом while, потому что это расписание, которое работает в зависимости от времени.Однако после нажатия кнопки графический интерфейс пользователя зависает, но сама программа все еще работает в фоновом режиме.

def start(root, period=0):
    schedule.every(float(delay)).hours.do(start)

    while True:
        schedule.run_pending()
        root.after(30000, print("WAITING 30 SECONDS..."))

Я хочу продолжать использовать меню, пока цикл продолжается в фоновом режиме.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы не должны использовать такой бесконечный цикл.Вместо этого используйте after для вызова run_pending по расписанию.

Например, если вы хотите опрашивать ожидающие события каждые тридцать секунд, это может выглядеть примерно так:

def start(root, period=0):
    schedule.every(float(delay)).hours.do(start))
    poll_schedule(schedule)

def poll_schedule(root, schedule)
    schedule.run_pending()
    print("WAITING 30 SECONDS...")
    root.after(30000, poll_schedule, root, schedule)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...