【问题标题】:Running watchdog file system watch within pyqt在 pyqt 中运行 watchdog 文件系统 watch
【发布时间】:2013-01-24 23:07:22
【问题描述】:

我有一个 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 集成以观察文件系统的变化。

【问题讨论】:

    标签: python-2.7 pyqt watchdog


    【解决方案1】:

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

    除了让程序运行直到用户中断它之外,循环不会做任何事情。您可以将其完全删除并照常运行 Qt 事件循环:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2022-12-03
      相关资源
      最近更新 更多