Russian Qt Forum
Ноябрь 23, 2024, 10:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: SQL и TreeView  (Прочитано 3428 раз)
WW
Гость
« : Август 30, 2006, 17:21 »

Я начинающий. Замучился делать иерархию и запроса из БД.
Что не так?

Код:
	QSqlRecord;
QStandardItemModel *model = new QStandardItemModel(iRow,3);
        QModelIndex parent;

        int iOFrame = sq.record().indexOf("id");
int iParent = sq.record().indexOf("idParent");

int iName = sq.record().indexOf("Name");

//while (int i = 0, y = 0; i < iRow; ++i)
//model->insertColumns(1, 1);

while (sq.next())
{
QModelIndex index, indId, indParent;

if (!sq.value(iParent).toInt())
{

model->insertRows(iRow, 1); //это верхний уровень
indId = model->index(iRow, 1);
indParent = model->index(iRow, 2);
index = model->index(iRow++, 0);
}
else
{
//это потомки
int y = sq.value(iParent).toInt();
QModelIndexList mil;
mil = model->match(model->index(0, 1), Qt::EditRole, y, 1, Qt::MatchStartsWith | Qt::MatchRecursive);

if (mil.count())
{
parent = mil.last().parent();
int iRow = mil.last().row(), iCol = mil.last().column();
parent = model->index(iRow, iCol - 1, parent);
//parent = model->index(0, 0, parent); //sq.value(iParent).toInt()
model->insertRows(0, 1, parent);
model->insertColumns(0, 1, parent);
index = model->index(0, 0, parent);
indId = model->index(0, 1, parent);
indParent = model->index(0, 2, parent);
}
}

s = sq.value(iName).toString();
model->setData(index, sq.value(iName).toString());
model->setData(indId, sq.value(iOFrame).toInt());
model->setData(indParent, sq.value(iParent).toInt());


sq.next();
}

ui.treeView->setModel(model);

Верхний уровень строится, а дочерний не могу...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 21.