Хотелось бы ещё разобрать вопрос с пересортировкой модели и использованием функций layoutAboutToBeChanged, changePersistentIndexList, layoutChanged а так же как быть если данные подгружаются в отдельном потоке.
Хорошо написано, но именно для этого случая с файловой моделью, хотелось бы обратить внимание, что данная модель не учитывает изменений файловой системы после подгрузки.
Иначе говоря, если для папки был выполнем fetchMore, а потом количество или состав файлов в этой папке изменились, то модель этого не отобразит.
Впрочем это уже больше про работу с файловой системой, чем про модели, но, если кто-то мобирается этим восопльзоваться, просто укажу, что стоит посмотреть на класс QFileSystemWatcher
QFileSystemWatcher меня огорчил.
Не знаю как в Qt5, но в Qt4.* под Windows он не срабатывает если изменения файлов производились не через Explorer, а через CMD например.
Иерархические модели в Qt