标签: qfilesystemwatcher

Qt:检查文件夹中的文件是否已更改

有没有办法在指定目录(或子文件夹)中的文件触发操作,而不是每次都获取所有修改时间?我问,因为我要检查这个

c++ qt qfile qfilesystemwatcher qtcore

9
推荐指数
1
解决办法
4367
查看次数

Windows上的Qt QFileSystemWatcher

我遇到以下问题:创建一个QFileSystemWatcher,它可以在Linux上正常运行,但在Windows 7上却无法运行。您能在代码中发现可能使它无法正常工作的任何内容吗?

谢谢。

这是初始化它的代码:

mConfigChangeWatcher = new QFileSystemWatcher();
mConfigChangeWatcher->addPath(config_file_name);

QObject::connect(mConfigChangeWatcher,
                 SIGNAL(fileChanged(QString)),
                 this,
                 SLOT(configFileChanged(QString)));
Run Code Online (Sandbox Code Playgroud)

这应该是完成工作的插槽:

void MyClass::configFileChanged(const QString &file)
{
    qDebug() << "Changed: " << file ;
}
Run Code Online (Sandbox Code Playgroud)

qt qfilesystemwatcher

4
推荐指数
1
解决办法
1954
查看次数

为什么 QFileSystemWatcher 适用于目录而不适用于 Python 中的文件?

我从另一个 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)
Run Code Online (Sandbox Code Playgroud)

问题是,file_changed无论如何都不会被调用。directory_changed例如,在添加文件时可靠地调用,但更改文件内容不会导致调用 file_changed。

我调用了 的一些变体QtCore.SIGNAL('fileChanged(QString)'),例如,QtCore.SIGNAL('fileChanged(const QString &)')无济于事。没有警告或错误——它只是不触发该功能。

推荐?

python qt pyqt qfilesystemwatcher

1
推荐指数
1
解决办法
4477
查看次数

标签 统计

qfilesystemwatcher ×3

qt ×3

c++ ×1

pyqt ×1

python ×1

qfile ×1

qtcore ×1