Я использую QFileSystemModel и переключаюсь для рекурсивной фильтрации системных файлов с использованием QSortFilterProxyModel. Корневая папка работает довольно хорошо, но ни один из файлов в папках не отображается в результате.
РЕДАКТИРОВАТЬ (полный пример):
#include <QApplication>
#include <QMainWindow>
#include <QTreeView>
#include <QFileSystemModel>
int main(int in_argc, char **in_argv)
{
QString l_path = "C:/";
QApplication l_app(in_argc, in_argv);
QMainWindow l_window;
QFileSystemModel l_model;
l_model.setFilter(QDir::AllEntries);
QModelIndex l_index = l_model.setRootPath(l_path);
QSortFilterProxyModel l_filter;
l_filter.setSourceModel(&l_model);
l_filter.setRecursiveFilteringEnabled(true);
QListView *l_view = new QListView;
l_view->setModel(&l_filter);
l_view->setRootIndex(l_filter.mapFromSource(l_index));
QWidget l_widget;
QVBoxLayout l_layout;
QLineEdit l_line;
l_layout.addWidget(&l_line);
l_layout.addWidget(l_view);
l_widget.setLayout(&l_layout);
l_window.connect(&l_line, &QLineEdit::textChanged, [&l_filter](const QString &in_text)
{
l_filter.setFilterWildcard(in_text);
});
l_window.setCentralWidget(&l_widget);
l_window.show();
return l_app.exec();
}
Я не видел ни одного примера в качестве доказательства концепции, поэтому мне интересно, должен ли setRecursiveFilteringEnabled работать с QFileSystemModel или, может быть, я что-то упустил?