我有一个pyqt小部件,允许用户进行一些设置,然后将它们保存到sqlite数据库中,此设置会影响监视程序,它使用以下代码检查文件系统的更改
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
以上内容不能放在 qwidget 应用程序代码中,因为它会阻止我尝试过的一些 pyqt 代码被执行:
""" Some other code """
app = QtGui.QApplication(sys.argv)
ex = vdrive()
trayIcon = SystemTrayIcon(QtGui.QIcon("app.xpm"), ex)
trayIcon.show()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
sys.exit(app.exec_())
我将如何将看门狗与 pyqt 集成以观察文件系统更改。
类
watchdog.observers.Observer
继承自threading.Thread
,因此实际检查是在调用observer.start()
时启动的线程中完成的。
循环除了让程序运行直到用户中断它之外,不执行任何操作。您可以完全删除它并像往常一样运行Qt事件循环:
observer.start()
status = app.exec_()
observer.stop()
observer.join()
sys.exit(status)