Для этого нужна еще одна прокси модель для 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 на примерах" Юрий Земсков.