QTableView:どのように私は正しくQModelIndexを作成するのですか?

StackOverflow https://stackoverflow.com/questions/2492470

  •  21-09-2019
  •  | 
  •  

質問

私はこのような特定のセルに編集モードに入るようにしようとしています:

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;
}

私のモデルは、このようなインデックスを作成します

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

このようなデバッグ出力ルックスます:

row: 9  col: 1 index: QModelIndex(9,1,0x0,TableModel(0xbf3f50) )  
私はかなり確かsetCurrentIndex()が動作していないようですとインデックスが何か無効であることを思います。

役に立ちましたか?

解決

OMG!私ツバメ地面アップ!

行番号は、行0で始まる、私が行うために必要な

int r=tm->rowCount(QModelIndex())-1;
QModelIndex id=tm->index(r,ec,QModelIndex());
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top