首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >qfilesystemwatcher在文件编辑时发出两次directorychanged信号

qfilesystemwatcher在文件编辑时发出两次directorychanged信号
EN

Stack Overflow用户
提问于 2013-03-15 19:36:59
回答 1查看 1.8K关注 0票数 2

我需要在qt中查看一个目录。已创建连接。但在文件编辑时,发送者会发出两次目录改变信号。文件更改的信号也在同一时间发出。发射两次信号有什么用?有没有办法知道哪个文件/文件夹被更改了?请帮帮我..以下是连接代码

代码语言:javascript
复制
QFileSystemWatcher *watcher = new QFileSystemWatcher;
watcher->addPath("/home/user/directory/");
connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(directoryChangedHandler(QString)));

and函数

代码语言:javascript
复制
void MainWindow::directoryChangedHandler(QString path)
{
    QMessageBox::information(0, "Directory Changed", "Directory Changed at " + path);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-20 13:45:29

我发现了问题所在。普通编辑器从磁盘中删除并重新写入该文件。因此,删除文件和添加文件有两个信号。我尝试在Ubuntu中使用nano编辑器编辑该文件。它不发出任何directoryChanged信号,但发出fileChanged信号。所以这意味着它不会删除和添加文件,而是编辑相同的文件。帮助这一结论的另一件事是,在使用普通编辑器时,该路径将从watcher中删除。这意味着,该文件暂时不存在。我必须再次手动添加该路径。这在使用nano时不会发生。由于我再次编写了添加路径的代码,因此显示错误"QFileSystemWatcher: failed to add paths: /home/user/directory/file“。因为该路径已经在watcher中。

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

https://stackoverflow.com/questions/15431422

复制
相关文章

相似问题

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