crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Модели в контейнере
Roland
  опции профиля:
сообщение 15.10.2011, 14:49
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 11.10.2011
Пользователь №: 2936

Спасибо сказали: 0 раз(а)




Репутация:   0  


То ли плохо искал, то ли проблема специфическая...
Коротко опишу общую картину:
Есть 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'
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 15.10.2011, 15:33
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


    //Создаю контейнер
    QList<QStandardItemModel*> *modelContainer = new QList<QStandardItemModel>;

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 12:04