Пытаюсь добавить строку в таблицу.
вот код:
C++ (Qt)
bool DataBaseModel::prepareInsertData()
{
if(!finsert){
int row = rowCount(QModelIndex());
int amountColumn = columnCount(QModelIndex());
beginInsertRows(QModelIndex(),row,row);
QStringList * dataRecord = new QStringList;
for(int i = 0; i < amountColumn; dataRecord->append(""),i++);
dataRecords.append(dataRecord);
insertRecords.append(dataRecord);
endInsertRows();
finsert = true;
}
}
void TableView::keyPressEvent(QKeyEvent *event)
{
DataBaseModel* dataBaseModel = (DataBaseModel*)(((DataBaseFilterModel*)model())->sourceModel());
switch(event->key()){
case Qt::Key_Insert:{
qDebug()<<"insert";
dataBaseModel->prepareInsertData();
int row = dataBaseModel->rowCount(QModelIndex());
if(row > dataBaseModel->getCountDataBaseRecords()){
QModelIndex index = dataBaseModel->index(row - 1,1);
selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect|QItemSelectionModel::SelectCurrent);
scrollToBottom();
}
break;
}
}
}
Вроде все замечательно и работает
Добавляется пустая строчка и мы начинаем ее редактировать.
Только вот загвоздка - ячейку я выделил
selectionModel()->setCurrentIndex(index, QItemSelectionModel::ClearAndSelect|QItemSelectionModel::SelectCurrent)
,а отредактировать ее не могу(набирая текст).
Хотя когда я перехожу на другую ячейку (с помощью мыши или клавиатуры)то при на боре текста все в порядке - она редактируется.
Скажите , как решить эту проблему???