2014-11-07 6 views
2

В этом случае я работаю с устаревшим кодом. У меня большая структура данных dequeue. Это источник данных. Мне нужно два виджета QTableView в одном диалоговом окне, в котором используется тот же источник данных, но отображаются разные столбцы данных. Поскольку в каждой таблице отображаются разные столбцы данных, как они могут делиться одним и тем же QAbstractItemModel? Для этого нужны прокси-модели?Совместное использование одной модели между двумя представлениями, отображающими разные столбцы данных

ответ

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); 

 Смежные вопросы

  • Нет связанных вопросов^_^