1
我借這個代碼another StackOverflow answer:爲什麼QFileSystemWatcher適用於目錄,但不適用於Python中的文件?
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 &)')
,無濟於事。沒有警告或錯誤 - 它不會觸發該功能。
建議?
你是對的,儘管我的問題並沒有將文件添加到路徑列表。我誤解了這個類不是遞歸的。 –
在調用file_changed的情況下,更新模型或QTreeView以顯示更新文件的方式是什麼。在我的情況下,當我知道它已更改時,我想查看更新的日期/時間戳。我有一個編譯按鈕,我希望新的.mpy文件顯示更新的時間戳 – Eradicatore
@Eradicatore。請問一個新問題。 – ekhumoro