Название: QTreeView добавление/перемещение элементов Отправлено: RomiX от Июнь 28, 2011, 15:56 привет всем. имеется QTreeView и модель на основе QAbstractItemModel, которая грузит данные из БД. Так-же создано несколько функций для перемещения элементов в родительский элемент и из него, удаления, добавления и т.д. Всё вообщем-то работает, только не совсем так как хотелось бы, например чтобы переместить элемент на уровень вверх:
node->parent = grandParentNode; grandParentNode->childrens.push_back(node); parentNode->childrens.removeOne(node); view->reset(); node - вершина, содержит указатель на родительскую вершину и список потомков Проблема в том что после этого QTreeView сворачивает все элементы, + это явно не самое лучшее решение, т.к. view заново проходиться по всем элементам. Собственно как можно добавить / удалить элемент из представления или модели не вызывая reset()?? Название: Re: QTreeView добавление/перемещение элементов Отправлено: Авварон от Июнь 28, 2011, 17:25 beginMoveRows()/endMoveRows()
Название: Re: QTreeView добавление/перемещение элементов Отправлено: RomiX от Июнь 28, 2011, 18:15 чёто не хочет работать
вызываю так: beginMoveRows(index, index.row(), index.row(), index.parent(), rowCount(index.parent())) endMoveRows(); в index текущий индекс, parent валидный и ничего не происходит... Название: Re: QTreeView добавление/перемещение элементов Отправлено: RomiX от Июнь 28, 2011, 18:28 а всё понял! надо было вот это оставить:
node->parent = grandParentNode; grandParentNode->childrens.push_back(node); parentNode->childrens.removeOne(node); |