Pregunta

Estoy tratando de entrar en el modo de edición en una celda específica de esta manera:

void MainWindow::on_addButton_released() {
    tm->addRow();
    tableView->scrollToBottom();
    int ec=tm->firstWritableColumn();
    int r=tm->rowCount(QModelIndex());
    QModelIndex id = tm->index(r, ec, QModelIndex());
    tableView->setCurrentIndex(id);
    tableView->edit(id);
    qDebug() << "row:" << r << " col:" << ec << "index:" << id;
}

Mi modelo crea un índice de esta manera:

QModelIndex TableModel::index(int row,int column,QModelIndex parent) const {
    Q_UNUSED(parent);
    return createIndex(row,column,0);
}

Las miradas de salida de depuración de esta manera:

row: 9  col: 1 index: QModelIndex(9,1,0x0,TableModel(0xbf3f50) )  

Estoy bastante seguro de que el índice es de alguna manera no válida como no parece estar funcionando setCurrentIndex().

¿Fue útil?

Solución

OMG! planta golondrina Me Up!

números de fila se inicia con la fila 0, que tenía que hacer

int r=tm->rowCount(QModelIndex())-1;
QModelIndex id=tm->index(r,ec,QModelIndex());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top