1

ユーザーが設定を行ってsqliteデータベースに保存できるpyqtウィジェットがあります。この設定は、次のコードを使用してファイルシステムへの変更をチェックするウォッチドッグに影響します。

 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と統合して、ファイルシステムの変更を監視するにはどうすればよいですか。

4

1 に答える 1

2

クラスwatchdog.observers.Observerはから継承するthreading.Threadため、実際のチェックは、を呼び出したときに開始するスレッドで行われますobserver.start()

ループは、ユーザーがプログラムを中断するまでプログラムを実行させる以外は何もしません。これを完全に削除して、通常どおりQtイベントループを実行できます。

observer.start()
status = app.exec_()
observer.stop()
observer.join()
sys.exit(status)
于 2013-01-24T15:07:22.123 に答える