我从另一个 StackOverflow 答案中借用了这段代码:
from PyQt4 import QtCore
@QtCore.pyqtSlot(str)
def directory_changed(path):
print('Directory Changed!!!')
@QtCore.pyqtSlot(str)
def file_changed(path):
print('File Changed!!!')
fs_watcher = QtCore.QFileSystemWatcher(['/path/to/files_1', '/path/to/files_2', '/path/to/files_3'])
fs_watcher.connect(fs_watcher, QtCore.SIGNAL('directoryChanged(QString)'), directory_changed)
fs_watcher.connect(fs_watcher, QtCore.SIGNAL('fileChanged(QString)'), file_changed)
问题是,file_changed
无论如何,永远不会被调用。directory_changed
例如,在添加文件时会可靠地调用,但更改文件内容不会导致调用 file_changed。
我调用了 的一些变体QtCore.SIGNAL('fileChanged(QString)')
,例如 ,QtCore.SIGNAL('fileChanged(const QString &)')
但无济于事。没有警告或错误——它根本不会触发该功能。
建议?