Как стать автором
Обновить

QFileSystemWatcher следим за директориями и файлами

Класс QFileSystemWatcher предназначет за отслеживанием изменений в файлах и директориях.

Например:

Устанавливаем слежку за каким то файлом, передавая классу полный путь к
файлу. Как только файл будет переименован, изменен или удален с жесткого диска сгенерируется сигнал.



Простой пример применения:

В заголовчном файле декларируем указатель на объект:

QFileSystemWatcher *fsWatcher;</code>


Далее создаем тут же приватный слот, который будет срабатывать когда испустится сигнал объектом fsWatcher и на экран выведется сообщение о том, что файл изменен

private slots:
    void changed(const QString & flName);


Далее в файле исходников в конструкторе класса пишем следующее:

    //Создаем наследника
    fsWatcher = new QFileSystemWatcher(this);
    //устанавливаем слежку на файл
    fsWatcher->addPath("/home/alexandr/test.txt");
    //Связываем сигнал со слотом, как только файл будет изменен
    //произойдет вызов слота changed(QString)
    connect(fsWatcher, SIGNAL(fileChanged(QString)), this,    SLOT(changed(QString)));


    //Описываем наш слот
   void MainWindow::changed(const QString &flName)
   {
      //В QLabel будет выведено сообщение
      ui->label->setText("Changed " + flName);
   }
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.