Если вы сделали это здесь, возможно, у вас была та же проблема, что и я. Моя проблема заключалась в том, что я определял другую модель с тем же именем. Я назвал свою галерею и мою файловую модель «Файл». Дарн вы копируете и вставляете!
В репозитории 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
в отдельном потоке. Честно говоря, есть более чистые способы сделать это, например, использовать таймер одноразового использования.