【发布时间】:2012-11-22 19:28:29
【问题描述】:
我从another StackOverflow answer借了这段代码:
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 &)'),但无济于事。没有警告或错误——它根本不会触发函数。
建议?
【问题讨论】:
标签: python qt pyqt qfilesystemwatcher