Номер столбца обновления QTreeView

В настоящее время я работаю над настройкой QAbstractItemModel Я столкнулся с проблемой. Пока что сама модель работает нормально, но у меня возникают проблемы, если я пытаюсь отобразить ее с помощью QTreeView.

Сама Модель может самостоятельно изменять номер своего столбца, в зависимости от данных. Но представление никогда не будет обновлять количество отображаемых столбцов, только их содержимое.
Я перегрузил insertColumns:

bool MyModel::insertColumns(int column, int count, const QModelIndex &parent)
{
bool success;
beginInsertColumns(parent, column, column + count - 1);
success = this->getItem(parent)->insertColumns(column, count);
endInsertColumns();
return success;
}

Я немного поэкспериментировал и обнаружил, что если я каждый раз сбрасываю и устанавливаю вид, он будет отображать правильное количество столбцов:

connect(this->model, SIGNAL(columnsChanged()), this->ui->treeView, SLOT(reset()));

Но должен быть другой способ сделать это. Я ищу функцию, которая просто скажет View, что количество столбцов изменилось. Но единственный, кого я нашел (QTreeView::columnCountChanged(int oldCount, int newCount)) защищен …

0

Решение

Вот некоторые другие сигналы, которые может дать режим древовидного режима. Все они должны сработать, если вы вставляете столбец, поэтому просто используйте соответствующий и подключитесь для обновления вашего табличного представления, хотя я бы подумал, что если вы измените базовую модель представления следует обновить, и если это не сбрасывает модель

ui->treeView->model()->layoutChanged();
ui->treeView->model()->dataChanged();
ui->treeView->model()->columnsInserted();
ui->treeView->model()->columnsMoved();
1

Другие решения


По вопросам рекламы [email protected]