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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Из TreeModel через ProxyModel в TableView  (Прочитано 3608 раз)
explorer.85
Гость
« : Август 02, 2011, 14:56 »

Как преобразовать через прокси иерархическую модель из двух уровней в модель списка которая  содержит все элементы из нижнего уровня иерархической модели?
Записан
Kunashir
Гость
« Ответ #1 : Август 18, 2011, 15:18 »

Для этого нужна еще одна прокси модель для QTableView:

ну вот так у меня это реализовано:
Код:
treeProxyModel = new QSortFilterProxyModel (this);
    treeProxyModel->setSourceModel(&model);
    treeProxyModel->setFilterRole(Qt::DisplayRole);
    treeProxyModel->setFilterKeyColumn(4);
    treeProxyModel->setFilterFixedString("group");

    tableProxyModel = new QSortFilterProxyModel (this);
    tableProxyModel->setSourceModel(&model);

При клике по дереву надо будет определить индекс исходной модели и установить его в качестве текущего для прокси-модели QTableView;

Код:
connect (ui->treeView, SIGNAL (clicked (const QModelIndex &)), this,
              SLOT (groupChanged(const QModelIndex &)) );
.....

void MainWindow::groupChanged(const QModelIndex &index)
{
   if (!ui->checkBox->isChecked())
    {
       QModelIndex i = treeProxyModel->mapToSource(index);
       QModelIndex j = tableProxyModel->mapFromSource(i);
       ui->tableView->setRootIndex(j);
 
    }

}

Вроде бы все. Изначально пример взят из книги "Qt4 на примерах" Юрий Земсков.
Записан
kolob
Частый гость
***
Offline Offline

Сообщений: 296



Просмотр профиля
« Ответ #2 : Январь 07, 2013, 16:42 »

А реально сделать так чтобы в QTableView можно было бы отображать иерархическую модель?
Записан

Qt 5.11.0, Win, MinGW
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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