Search
Write a publication
Pull to refresh

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);
   }
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.