私のアプリケーションの基本的な前提は次のとおりです。
ディレクトリを監視する QFileSystemWatcher を確立しました。
Path = [r'C:\Users\user\Documents\Images']
DirectoryWatcher = QtCore.QFileSystemWatcher(Path)
DirectoryWatcher.directoryChanged.connect(showImages.UpdateImages)
過去に QFileSystemWatcher を使用したことがありますが、常に完全に機能しています (ディレクトリとファイルの両方の変更に対して)。
アプリケーションは、\Images フォルダー内の画像のスライドショーを表示します。新しい画像が \Images フォルダーに配置されると、スライドショーは新しい画像を含むようにリセットされます。イメージが \Images フォルダから削除されると、スライドショーは再びリセットされます。
私が抱えている問題は次のとおりです。複数の画像を \Images フォルダーにドラッグすると、directoryChanged シグナルが複数回発生します。シグナルが発生し、フォルダーに追加された各画像に対して対応する UpdateImages() ルーチンが実行されます。同時に追加された場合でも (つまり、複数の画像を選択し、それらを \Images にドラッグ アンド ドロップします)。
これは私のルーチンに大混乱を引き起こしています。ディレクトリ変更のバッチに対して、directoryChanged シグナルを 1 回発生させる方法はありますか? つまり、最終イメージがディレクトリに追加されるまで信号を無効にすることはできますか?
どうもありがとう!