После небольших изменений в simpletreemodel получаем следующее:
Работающий вариант:
#include <QtGui>
#include <QSortFilterProxyModel>
#include "treemodel.h"
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(simpletreemodel);
QApplication app(argc, argv);
TreeModel *model = new TreeModel();
QSortFilterProxyModel *proxy = new QSortFilterProxyModel(0);
proxy->setDynamicSortFilter(true);
proxy->setSourceModel(model);
QTreeView view;
view.setWindowTitle(QObject::tr("Simple Tree Model"));
view.show();
QFile file(":/default.txt");
file.open(QIODevice::ReadOnly);
model->setupModelData(QString(file.readAll()).split(QString("\n")),model->getRootItem());
view.setModel(proxy);
file.close();
return app.exec();
}
Меняем местами две строчки и в представлении ничего нет:
view.setModel(proxy);
model->setupModelData(QString(file.readAll()).split(QString("\n")),model->getRootItem());
А вот так все работает:
view.setModel(model);
model->setupModelData(QString(file.readAll()).split(QString("\n")),model->getRootItem());
Явно бага в QSortFilterProxyModel, будеи ждать 4.2.3, там вроде много исправлений в этом классе.