Информация QDir изменена

У меня есть приложение Qt, которое создает qtreeview на основе информации QDir. Есть ли способ, чтобы, если информация о каталоге изменилась (скажем, я добавил новый файл или удалил существующий), qtreeview обновился?

Спасибо! знак равно


person acerqueiro    schedule 03.08.2012    source источник


Ответы (1)


Для отслеживания изменений файловой системы вы можете использовать QFileSystemWatcher.

person Roman Saveljev    schedule 03.08.2012
comment
Спасибо @savelkev. Я делаю это QFileSystemWatcher watcher; watcher.addPath("C:/QtTest"); connect(&watcher, SIGNAL(directoryChanged(QString)), mc, SLOT(showModified(QString)));, но ничего не происходит, я не получаю сигнал. В SLOT у меня cout ‹‹ hi ‹‹ endl, который не печатается - person acerqueiro; 04.08.2012
comment
@user1486311 user1486311 Вы выделили watcher так, чтобы он жил достаточно долго, чтобы фактически излучать сигнал (то есть не как локальная переменная в функции). - person alexisdm; 04.08.2012
comment
Я использовал пример кода из stackoverflow.com/questions/10044853/how-to-qfilesystemwatcher и это сработало для меня. Я предполагаю, что вы попробуете приложение с графическим интерфейсом, которому некуда печатать STDOUT. Попробуйте этот пример сами - person Roman Saveljev; 04.08.2012
comment
Я использую этот пример, и он не работает: S, позвольте мне попробовать еще раз, и я дам вам знать через несколько минут! @saveljev - person acerqueiro; 09.08.2012
comment
мм, я думаю, это может быть ошибка, у меня есть @alexisdm, позвольте мне проверить это, и я дам вам знать - person acerqueiro; 09.08.2012