В этом случае я работаю с устаревшим кодом. У меня большая структура данных dequeue. Это источник данных. Мне нужно два виджета QTableView
в одном диалоговом окне, в котором используется тот же источник данных, но отображаются разные столбцы данных. Поскольку в каждой таблице отображаются разные столбцы данных, как они могут делиться одним и тем же QAbstractItemModel
? Для этого нужны прокси-модели?Совместное использование одной модели между двумя представлениями, отображающими разные столбцы данных
2
A
ответ
3
Прокси-модели (QSortFilterProxyModel
или QAbstractProxyModel
) предназначены для фильтрации, сортировки или других задач обработки данных. В вашем случае вы должны использовать ту же модель для двух разных видов и просто скрыть ненужные столбцы в каждом представлении:
QTableView *tableView = new QTableView();
QTableView *secondtableView = new QTableView();
MyModel *model = new MyModel();
tableView->setModel(model);
secondtableView->setModel(model);
tableView->setColumnHidden(0, true);
secondtableView->setColumnHidden(2, true);
secondtableView->setColumnHidden(3, true);
QHBoxLayout *layout = new QHBoxLayout(this);
layout->addWidget(tableView);
layout->addWidget(secondtableView);