crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Модели в контейнере
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
BRE Дата 15.10.2011, 15:33
 
    //Создаю контейнер
    QList<QStandardItemModel*> *modelContainer = new QList<QStandardItemModel>;

Roland Дата 15.10.2011, 14:49
  То ли плохо искал, то ли проблема специфическая...
Коротко опишу общую картину:
Есть 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'
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 1:07