Вот основная предпосылка моего приложения:
Я установил 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 один раз для пакета изменений каталога? т.е. Могу ли я отключить сигнал, пока окончательное изображение не будет добавлено в каталог?
Большое спасибо!
directoryChanged
к более умной функции, которая устанавливает флаг или имеет таймер, а не сразу обновлять изображения. Таким образом, вы можете фильтровать события самостоятельно. - person all or None   schedule 18.02.2015eventFilter
, который позволяет вам перехватывать и манипулировать событиями определенного типа. - person all or None   schedule 18.02.2015