Репозиторий Github библиотеки показывает, как избежать блокировки в примере целевой страницы:
from win10toast import ToastNotifier
import time
toaster = ToastNotifier()
toaster.show_toast("Example two",
"This notification is in it's own thread!",
icon_path=None,
duration=5,
threaded=True)
# Wait for threaded notification to finish
while toaster.notification_active(): time.sleep(0.1)
Вам необходимо добавить параметр threaded=True
. Спящий режим необходим только в том случае, если вы хотите проверить, активно ли уведомление.
Отображение уведомления не операция блокировки. Код библиотеки вызывает сон, равный duration
, перед закрытием окна:
# take a rest then destroy
sleep(duration)
DestroyWindow(self.hwnd)
UnregisterClass(self.wc.lpszClassName, None)
threaded=True
выполнит поток show/sleep/destroy
в отдельном потоке. Честно говоря, есть более чистые способы сделать это, например, использовать таймер одноразового использования.