我是新手,正在学习使用Qt编程,我的英语不是很好。我的问题是,当我更新QTableView中的一个单元格以在另一个单元格中使用其值时,它使用的是先前的值而不是新值。以下是我正在编写的代码,请帮忙看一下,谢谢。
bool MainWindow::eventFilter(QObject * watched, QEvent * event)
{
if(event->type() == QEvent::KeyPress)
{
QKeyEvent *ke = static_cast<QKeyEvent *>(event);
qDebug() << ke->type();
if(ke->key() == Qt::Key_Enter || ke->key() == Qt::Key_Return)
{
int fila = ui->tableView->currentIndex().row();
int col = ui->tableView->currentIndex().column();
double valor1 = ui->tableView->model()->data(ui->tableView->model()->index(fila,1)).toDouble();
double valor2 = ui->tableView->model()->data(ui->tableView->model()->index(fila,3)).toDouble();
if(col == 1 || col == 3)
{
ui->tableView->model()->setData(ui->tableView->model()->index(fila,col + 1),2.0*valor1);
ui->tableView->model()->setData(ui->tableView->model()->index(fila,col + 3),200.0*valor1/valor2);
}
}
}
return false;
}