QfileSystemWatcher 不工作
QfileSystemWatcher doesn't work
这是我初始化观察者的方式:
QFileSystemWatcher watcher;
bool isWatched = watcher.addPath("../stylesheets/main.style");
if (isWatched) qDebug() << "Stylesheet is being watched.";
connect(&watcher, &QFileSystemWatcher::fileChanged, this, &PCLViewer::updateStyle );
但是当我修改、删除或重命名文件时,我的更新样式函数从未被调用!我也试过像这样连接插槽和信号:
connect(&watcher, SIGNAL(fileChanged(QString)), this, SLOT(updateStyle(QString)) );
updateStyle
函数的签名是这样的:
public slots:
void updateStyle(const QString &path);
我正在使用 ubuntu。
插槽函数签名错误。我必须使用 void updateStyle (QString path);
才能调用它。
如果有人遇到同样的问题。
试试这个:
QFileSystemWatcher *watcher = new QFileSystemWatcher();
bool beingWatched = watcher->addPath("Enter your path here");
if (beingWatched ) qDebug() << "Being watched";
QObject::connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(handleFileChanged(QString)));
我不知道为什么,但至少在我的系统上你需要创建一个指针来发出信号,否则它将不起作用。
这是我初始化观察者的方式:
QFileSystemWatcher watcher;
bool isWatched = watcher.addPath("../stylesheets/main.style");
if (isWatched) qDebug() << "Stylesheet is being watched.";
connect(&watcher, &QFileSystemWatcher::fileChanged, this, &PCLViewer::updateStyle );
但是当我修改、删除或重命名文件时,我的更新样式函数从未被调用!我也试过像这样连接插槽和信号:
connect(&watcher, SIGNAL(fileChanged(QString)), this, SLOT(updateStyle(QString)) );
updateStyle
函数的签名是这样的:
public slots:
void updateStyle(const QString &path);
我正在使用 ubuntu。
插槽函数签名错误。我必须使用 void updateStyle (QString path);
才能调用它。
如果有人遇到同样的问题。
试试这个:
QFileSystemWatcher *watcher = new QFileSystemWatcher();
bool beingWatched = watcher->addPath("Enter your path here");
if (beingWatched ) qDebug() << "Being watched";
QObject::connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(handleFileChanged(QString)));
我不知道为什么,但至少在我的系统上你需要创建一个指针来发出信号,否则它将不起作用。