Python 2.7 在pyqt中运行watchdog文件系统监视

Python 2.7 在pyqt中运行watchdog文件系统监视,python-2.7,pyqt,watchdog,Python 2.7,Pyqt,Watchdog,我有一个pyqt小部件,它允许用户进行一些设置,然后将它们保存到sqlite数据库,这些设置会影响watchdog,watchdog使用以下代码检查对文件系统的更改 try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() 上述内容不能放在qwidget应用程序代码中,因为它将阻止我尝试过的一些pyqt代码执行: """ Some other code """ a

我有一个pyqt小部件,它允许用户进行一些设置,然后将它们保存到sqlite数据库,这些设置会影响watchdog,watchdog使用以下代码检查对文件系统的更改

 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_())

如何将watchdog与pyqt集成以观察文件系统的变化。

watchdog.observers.Observer
继承自
threading.Thread
,因此实际检查是在调用
Observer.start()
时启动的线程中完成的

循环除了让程序运行直到用户中断它之外什么都不做。您可以完全删除它,并像往常一样运行Qt事件循环:

observer.start()
status = app.exec_()
observer.stop()
observer.join()
sys.exit(status)