То ли плохо искал, то ли проблема специфическая...
Коротко опишу общую картину:
Есть Gui приложение в котором два элемента управления:TreeWidget и TreeView.
При нажатии на любой из элементов в TreeWidget в Tree View появляется соответствующее дерево(иерархия).
То есть для каждого элемента в TreeWidget есть своя модель для TreeView. Планируется панель управления для работы с моделями в TreeView.
Так как количество элементов в TreeWidget плавающее(может быть хоть 1, хоть 10, хоть 100). Я думаю, что все эти модели лучше всего сложить в "резиновый контейнер". Что я и делаю:
//Создаю контейнер
QList<QStandardItemModel> *modelContainer = new QList<QStandardItemModel>;
//Создаю модели для теста
//Создаю первую модель
QStandardItemModel *pModel = new QStandardItemModel(0,1,this);
QStandardItem *pItem = new QStandardItem("Root 1 from Model 1");
QStandardItem *pItem2 = new QStandardItem("Elem 1 from Model 1");
QStandardItem *pItem3 = new QStandardItem("Elem 2 from Model 1");
pItem->setChild(0,pItem2);
pItem->setChild(1,pItem3);
pItem->setEditable(false);
pModel->appendRow(pItem);
//Создаю вторую модель
QStandardItemModel *pModel2 = new QStandardItemModel(0,1,this);
QStandardItem *pItem4 = new QStandardItem("Root 1 from Model 2");
QStandardItem *pItem5 = new QStandardItem("Elem 1 from Model 2");
QStandardItem *pItem6 = new QStandardItem("Elem 2 from Model 2");
pItem4->setChild(0,pItem5);
pItem4->setChild(1,pItem6);
pItem4->setEditable(false);
pModel2->appendRow(pItem4);
//Кладу модели в контейнер
modelContainer->push_back(pModel);
modelContainer->push_back(pModel2);
Получаю ошибки:
..\TreeVieModelSwitcher\mainwindow.cpp(29) : error C2664: 'QList<T>::push_back' : cannot convert parameter 1 from 'QStandardItemModel *' to 'const QStandardItemModel &'
with
[
T=QStandardItemModel
]
Reason: cannot convert from 'QStandardItemModel *' to 'const QStandardItemModel'
Constructor for class 'QStandardItemModel' is declared 'explicit'
..\TreeVieModelSwitcher\mainwindow.cpp(30) : error C2664: 'QList<T>::push_back' : cannot convert parameter 1 from 'QStandardItemModel *' to 'const QStandardItemModel &'
with
[
T=QStandardItemModel
]
Reason: cannot convert from 'QStandardItemModel *' to 'const QStandardItemModel'
Constructor for class 'QStandardItemModel' is declared 'explicit'