Неправильное поведение внутри QAbstractItemModel
От: arfaa  
Дата: 15.05.20 13:58
Оценка:
Добрый день, работаю с моделью , наследованной от QAbstractItemModel. В одной из функций при одном условии удаляю и заполняю таблицу новым количеством строк, при переключении делаю такой же механизм:
    if (_modeRow == 0)
    {
        if (rowCount() < m_TradeItems.size())
        {
            beginResetModel();
            beginRemoveRows(QModelIndex(), 0, _rowCount-1);
            endRemoveRows();
            beginInsertRows(QModelIndex(), 0, m_TradeItems.size());
            endInsertRows();
            _rowCount = m_TradeItems.size() + 1;
        
            endResetModel();
            emit signalSetSpanRow(_rowCount);
        }
    }
    if (_modeRow == 1)
    {
        if (_rowCount > _nettoTrades.size() + 1 || _rowCount == -1)
        {
            _rowCount = m_TradeItems.size() + 1;
            beginResetModel();
            beginRemoveRows(QModelIndex(), 0, m_TradeItems.size());
            endRemoveRows();
            beginInsertRows(QModelIndex(), 0, _nettoTrades.size());
            endInsertRows();
            _rowCount = _nettoTrades.size() + 1;
            
            endResetModel();
            emit signalSetSpanRow(_rowCount);
        }
        
    }
    lt = index(0, 0);
    rb = index(_rowCount-1, columnCount() - 1);
    emit dataChanged(lt, rb);

отрисовка происходит с правильным количеством строк, но в date, к примеру в одном из случаев не падает в точку останова, когда index.column>3 и выводит все неправильно-это при _modeRow = 1, при возврате к первоначальному отображению(_modeRow = 0) все отображается корректно, в date падает во все column > 3 и так далее. Что делаю не так при обновлении таблицы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.