Скажите, пожалуйста, как правильно удалять колонки из модели.
Я наследую QAbstractTableModel, заполняю его тремя QMap, создаю таблицу из 6 колонок, вида:
key_map1 | value_map1 | key_map2 | value_map2 | key_map3 | value_map3
На форме три таблицы QTableView, в первый QTableView мне нужны колонки key_map1 | value_map1, во второй key_map2 | value_map2 и в третий key_map3 | value_map3 соответственно, т.е. модель имеет доступ ко всем таблицами, а каждое из представлений отображает только один QMap
Как я понимаю делается это через QSortFilterProxyModel, но у меня не получается.
Так выглядит модель:
class BushelFrequencyModel : public QAbstractTableModel
{
public:
BushelFrequencyModel(QObject *parent = 0){}
...
private:
QMap<int, double> m_listDF;
QMap<int, double> m_listCHVM;
QMap<int, double> m_listFCH;
}
Видимо самое простое решение это удалить ненужные колонки:
QMap<int, double> listDF;
listDF.insert(4, 14.5);
listDF.insert(12, 389.4);
listDF.insert(17, 5772.3);
listDF.insert(28, 283.5);
listDF.insert(40, 29999.9);
QMap<int, double> listCHVM;
listCHVM.insert(15, 100.3);
listCHVM.insert(18, 673.4);
listCHVM.insert(63, 83.5);
QMap<int, double> listFCH;
listFCH.insert(9, 342.9);
listFCH.insert(32, 958.4);
listFCH.insert(44, 871.2);
listFCH.insert(78, 9276.3);
listFCH.insert(94, 5493.9);
listFCH.insert(111, 2999.9);
listFCH.insert(156, 27050.9);
listFCH.insert(179, 5299.1);
// инициализация данных
m_FrequencyModel->setFrequencyMap(listDF, listCHVM, listFCH);
QSortFilterProxyModel *proxyModelForDF = new QSortFilterProxyModel;
proxyModelForDF->setSourceModel(m_FrequencyModel);
proxyModelForDF->removeColumns(2, 4);
ui->tableDF->setModel(proxyModelForDF);
Но колонки не удаляются, нужно ли перегружать removeColumns в созданной модели или нет?
Заранее благодарен.