LINUX.ORG.RU

История изменений

Исправление m0rph, (текущая версия) :

Для этого нужно было только «передернуть» модель, вот так:

  setModel(NULL);
  setModel(recordSourceModel);

Что за глупости? Когда в модель добавляются колонки, она должна вызывать beginInsertColumns/endInsertColumns, что в свою очередь генерирует сигналы columnsAboutToBeInserted/columnsInserted. Эти сигналы ловит QSortFilterProxyModel, выполняет фильтрацию/сортировку и при необходимости генерирует такие же сигналы, которые, в свою очередь, ловятся уже твоим QTableView. По этим сигналам view и узнает, что требуется добавить колонки. Предполагаю одно из двух: либо ты не вызываешь в исходной модели beginInsertColumns/endInsertColumns (если конечно ты используешь не стандартную модель), либо твоя прокси-модель просто фильтрует эти колонки.

Исходная версия m0rph, :

Для этого нужно было только «передернуть» модель, вот так:

  setModel(NULL);
  setModel(recordSourceModel);

Что за глупости? Когда в модель добавляются колонки, она должна вызывать beginInsertColumns/endInsertColumns, что в свою очередь генерирует сигналы columnsAboutToBeInserted/columnsInserted. Эти сигналы ловит QSortFilterProxyModel, выполнят фильтрацию/сортировку и при необходимости генерирует такие же сигналы, которые, в свою очередь, ловятся уже твоим QTableView. По этим сигналам view и узнает, что требуется добавить колонки. Предполагаю одно из двух: либо ты не вызываешь в исходной модели beginInsertColumns/endInsertColumns (если конечно не используешь стандартную модель), либо твоя прокси-модель просто фильтрует эти колонки.