首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows上的Qt QFileSystemWatcher

Windows上的Qt QFileSystemWatcher
EN

Stack Overflow用户
提问于 2012-07-26 20:21:10
回答 2查看 2.4K关注 0票数 4

我有以下问题:我创建了一个QFileSystemWatcher,它在Linux上运行得很好,但在windows7上却不行。你能在代码中发现任何可能使它无法工作的地方吗?

谢谢。

下面是初始化它的代码:

代码语言:javascript
复制
mConfigChangeWatcher = new QFileSystemWatcher();
mConfigChangeWatcher->addPath(config_file_name);

QObject::connect(mConfigChangeWatcher,
                 SIGNAL(fileChanged(QString)),
                 this,
                 SLOT(configFileChanged(QString)));

这应该是完成工作的位置:

代码语言:javascript
复制
void MyClass::configFileChanged(const QString &file)
{
    qDebug() << "Changed: " << file ;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-16 22:29:08

在第一次修改文件之后,当您检查文件是否使用QFileSystemWatcher::files()方法添加到观察器中时,您是否获得了正确的列表?

我遇到的问题是,当一些应用程序修改文件时,会从系统中删除旧文件,然后重新写入。

请注意,QFileSystemWatcher会在重命名文件或从磁盘中删除文件以及从磁盘中删除目录后停止监视文件。

我正在使用QFileSystemWatcher观看由Photoshop编辑的图像文件。不知何故,该文件被从正在监视的文件列表中删除。

票数 5
EN

Stack Overflow用户

发布于 2014-10-14 00:15:51

我也遇到了同样的问题,而且很快就解决了。在管理fileChanged信号的插槽中,路径从files()中消失。如果有必要,我只需检查并重新添加它

代码语言:javascript
复制
if (! watcher_.files().contains(path))
{
    watcher_.addPath(path);
}

我希望这能帮到你

法比奥

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11669179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档