Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QStandardItemModel, QTreeView создание записей во 
V
    Опции темы
Kirys
Дата 5.8.2012, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.8.2012

Репутация: нет
Всего: нет



Код
SubsysModel::SubsysModel(QObject *parent) :
    QObject(parent)
{
    modelSUBSYS = new QStandardItemModel();
    rootSubTree = modelSUBSYS->invisibleRootItem();
    modelSUBSYS->invisibleRootItem()->insertColumns(0,2);
    modelSUBSYS->setHorizontalHeaderLabels(QStringList()<<"data"<<"id");

}


void SubsysModel::InitModel(const QList<ItemSubTree> *itemList)
{
    //QList<QStandardItem*> itemDataNameID;
    indexList=new QList<QModelIndex>;

    for(int i=0;i<=itemList->count()-1;i++)
    {
        rootSubTree->appendRow(itemList->at(i).nameSys);

        for(int j=0;j<=itemList->at(i).device.count()-1;j++)
        {
            itemList->at(i).nameSys->appendRow(itemList->at(i).device.at(j).deviceName);

            indexList->append(itemList->at(i).device.at(j).deviceName->index());


            for(int k=0;k<=itemList->at(i).device.at(j).dataName.count()-1;k++)
            {
                itemList->at(i).device.at(j).deviceName->appendRow(itemList->at(i).device.at(j).dataName.at(k));
               
               
            }

        }
    }
   modelSUBSYS->setData(modelSUBSYS->index(0,1,indexList->at(0)),QString("test"));   // [1]
}

QStandardItemModel* SubsysModel::SetModel()
{
    return modelSUBSYS;
}


itemList - список обектов с данными, для дерева.
Все само дерево нормально создается, проблема (уже запутался) в добавлении (редактирование) второго столбца.

Пытался так [1]  
Код
modelSUBSYS->setData(modelSUBSYS->index(0,1,indexList->at(0)),QString("test"));

И еще как-то уже если честно забыл.. 

подскажите пожалуйста, просто данные 2 столбца будут изменять со временем работы программы, и надо их редактировать.



Проблема решена
Код

#include "subsysmodel.h"

SubsysModel::SubsysModel(QObject *parent) :
    QObject(parent)
{
    modelSUBSYS = new QStandardItemModel();
    rootSubTree = modelSUBSYS->invisibleRootItem();
    modelSUBSYS->invisibleRootItem()->insertColumns(0,2);
    modelSUBSYS->setHorizontalHeaderLabels(QStringList()<<"data"<<"id");

}


void SubsysModel::InitModel(const QList<ItemSubTree> *itemList)
{
   
    indexList=new QMap<int,QModelIndex>;

    for(int i=0;i<=itemList->count()-1;i++)
    {
        rootSubTree->appendRow(itemList->at(i).nameSys);

        for(int j=0;j<=itemList->at(i).device.count()-1;j++)
        {
            itemList->at(i).device.at(j).deviceName->insertColumns(0,2);
            itemList->at(i).nameSys->appendRow(itemList->at(i).device.at(j).deviceName);

            for(int k=0;k<=itemList->at(i).device.at(j).dataName.count()-1;k++)
            {
                itemList->at(i).device.at(j).deviceName->appendRow(itemList->at(i).device.at(j).dataName.at(k));

                indexList->insert(itemList->at(i).device.at(j).idData.at(k),itemList->at(i).device.at(j).dataName.at(k)->index());

            }

        }
    }
}

QStandardItemModel* SubsysModel::SetModel()
{
    return modelSUBSYS;
}

void SubsysModel::SetData(int id, QVariant data)
{
     modelSUBSYS->setData(indexList->value(id).sibling(indexList->value(id).row(),1),data);
}

indexList - QMap<int,QModelIndex>* indexList;

Это сообщение отредактировал(а) Kirys - 5.8.2012, 17:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0698 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.