Задать вопрос

Как заставить tkinter вызывать MessageBox из таймера?

Этот код намертво вешает программу:
from tkinter import *
from tkinter.messagebox import *
from threading import Timer
def timerDone():
    showinfo('Alert','Alert')
window = Tk()
mainTimer = Timer(3, timerDone)
mainTimer.start()
window.mainloop()

Погуглив, выяснил, что tkinter не может multithreading. Как же мне быть?
Костыли типа `after`, пожалуйста, не предлагать - у меня несколько десятков сложных таймеров с динамическим изменением интервала. Слышал, есть tkinter с поддержкой multithreading, но он под второй Питон, а у меня 3.
Слышал, проблема как-то костыльно, но решается с помощью Queue, но так и не понял как.
  • Вопрос задан
  • 3003 просмотра
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
yttrium
@yttrium
Ваш код у меня сработал. Выскочил и алерт. Python 3.4.1.
Попробуйте обновить python
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы