我正在使用python和opencv编写代码。如果未检测到面部,则应通知windows10用户。我使用win10toast
import time
from win10toast import ToastNotifier
notif = ToastNotifier()
notif.show_toast(title= "Nusrat", msg= "One baby is missing")
time.sleep(10)
但它会在显示通知时停止代码。我有什么方法可以使用gui或任何东西显示通知,但不会停止代码?
library's Github repo显示了如何避免在着陆页示例中阻止:
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
参数。只有在您想要检查通知是否仍处于活动状态时才需要休眠。
显示通知不是阻止操作。在关闭窗口之前,library's code强制睡眠等于duration
:
# take a rest then destroy
sleep(duration)
DestroyWindow(self.hwnd)
UnregisterClass(self.wc.lpszClassName, None)
threaded=True
将在一个单独的线程中执行show/sleep/destroy
流程。坦率地说,有更简洁的方法,例如使用一次性计时器。