To kadr:
так написал бы, как ты решил проблему =)
Вдруг у кого-то еще может возникнуть похожая проблема =)
Ответу стоит писать =) Это ж форум для всех =)
Проблему решил просто, при начале редактирования, то есть в моем случае, при нажатии на пробел, в глобальную переменную заносятся номера строки и колонки изменяемой ячейки.
if (keyEvent->key()==Qt::Key_Space)
{
row_cur = 0;
column = 0;
st_kol = m_ui->pole->item(m_ui->pole->currentRow(),2)->text().trimmed();
m_ui->pole->editItem(m_ui->pole->item(m_ui->pole->currentRow(),2));
row_cur = m_ui->pole->currentRow();
column = m_ui->pole->currentColumn();
}
Далее в void look_zakaz::on_pole_itemChanged(QTableWidgetItem* item) сравниваю данные в этих переменных с текущими данными.
QString SQL;
QSqlQuery q;
st_aft.clear();
st_aft = item->text().trimmed();
if ((m_ui->pole->currentRow() == row_cur) && (m_ui->pole->currentColumn() == column) && (st_kol != st_aft))
{
SQL = QString("UPDATE zakaz SET kolvo = %1 WHERE name = '%2' AND zavod = '%3' AND srokdo = '%4' AND postavcik = '%5' AND ok = %6")
.arg(st_aft.toInt())
.arg(m_ui->pole->item(m_ui->pole->currentRow(),0)->text().trimmed())
.arg(m_ui->pole->item(m_ui->pole->currentRow(),1)->text().trimmed())
.arg(m_ui->pole->item(m_ui->pole->currentRow(),3)->text().trimmed())
.arg(m_ui->pole->item(m_ui->pole->currentRow(),5)->text().trimmed())
.arg(m_ui->pole->item(m_ui->pole->currentRow(),7)->text().toInt());
q.exec(SQL);
st_aft.clear();
}
else
{
return;
}
Вот и все!