crossplatform.ru

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

> QStandardItemModel сложность со столбцами..., Не могу правильно добавить столбцы...
bahek3
  опции профиля:
сообщение 31.3.2011, 16:50
Сообщение #1


Студент
*

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

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




Репутация:   0  


Вопрос очень простой... но я все хожу вокруг да около и все никак не могу найти ответ... уже с этими индексами всю голову себе сломал... подскажите пжалста как быть... вопрос такой... Есть модель QStandardItemModel... из таблицы в БД я беру данные и строю из них дерево.. на это внимание не обращайте, это просто к сведению... Дело в том, что вложенность то будет наращиваться... и мне нужно чтобы первая колока была "data" а вторая "id"... в одну строку чтобы оно было.... ну блин уже пересмотрел примеров вагон и все никак не сложу из них одного нормального решения... подскажите кто...

QSqlQuery *pQuery = new QSqlQuery(QSqlDatabase::database("test"));
pQuery->prepare("SELECT id, data FROM t_groups;");
pQuery->exec();

m_pModel = new QStandardItemModel(this);

int i = 0;
while(pQuery->next()){
QStandardItem *pItem = new QStandardItem(pQuery->value(1).toString());
m_pModel->appendRow(pItem);

QStandardItem *pItem2 = new QStandardItem(pQuery->value(0).toString());
QList<QStandardItem*> lst;
lst<<pItem2;
m_pModel->insertColumn(1,lst);

i++;
}

delete pQuery;

на картинке виден результат выполнения этого обрыка кода... я понимаю что нужно перемещаться еще и по строкам... но все никак не попаду...
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
abc
  опции профиля:
сообщение 1.4.2011, 20:05
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

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




Репутация:   4  


Цитата(bahek3 @ 1.4.2011, 9:28) *
QStandardItem *item = m_pModel->itemFromIndex(index);
QModelIndex idx = m_pModel->index(item->row(),1,item->index());

думаю, нужно убрать item->index()
можно немножко иначе, и мне такой вариант больше нравится:
если ты знаешь index итема:
QModelIndex index1 = index.sibling(0,1)
получили индекс соседа из колонки нумер 1
и дальше, как ты и сделал:
m_pModel->data(index1).toString();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bahek3
  опции профиля:
сообщение 3.4.2011, 14:58
Сообщение #3


Студент
*

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

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




Репутация:   0  


Цитата(abc @ 1.4.2011, 20:05) *
QModelIndex index1 = index.sibling(0,1)


Интересная функция... нужно с ней познакомиться поближе... не знал ее назначения, но вижу полезная штука... Спасибо! Большое спасибо за участие и за дельные советы! ;) Думаю дальше уже нахимичу)

Маленькая поправочка...
QModelIndex index1 = index.sibling(index.row(),1)

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

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 1.12.2024, 21:52