I have two QTableWidgets and I'm trying to synchronize them as an exercise to figure out how to get / set data.

The current code I have is:
Qt Code:
  1. void MainWindow::on_tableWidget_2_cellChanged(int row, int column)
  2. {
  3. double value = ui->tableWidget_2->itemAt(row,column)->text().toDouble();
  4. ui->tableWidget->itemAt(row,column)->setData(Qt::UserRole, value);
  5. }
To copy to clipboard, switch view to plain text mode 

I have also tried:

Qt Code:
  1. void MainWindow::on_tableWidget_2_cellChanged(int row, int column)
  2. {
  3. QString value = ui->tableWidget_2->itemAt(row,column)->text();
  4. ui->tableWidget->itemAt(row,column)->setText(value);
  5. }
To copy to clipboard, switch view to plain text mode 

No matter what, the QString returned from QTableWidgetItem::text() is an empty string. This happens regardless of whether or not there was any text before I attempted editing.

Not sure if it matters, but this is how I initialize the table:

Qt Code:
  1. QTableWidgetItem * tableItem;
  2. for(int i = 0; i < 5; i++)
  3. {
  4. ui->tableWidget->insertRow(i);
  5. ui->tableWidget_2->insertRow(i);
  6.  
  7. tableItem = new QTableWidgetItem();
  8. ui->tableWidget->setItem(i,0,tableItem);
  9. tableItem = new QTableWidgetItem();
  10. ui->tableWidget->setItem(i,1,tableItem);
  11.  
  12. tableItem = new QTableWidgetItem();
  13. ui->tableWidget_2->setItem(i,0,tableItem);
  14. tableItem = new QTableWidgetItem();
  15. ui->tableWidget_2->setItem(i,1,tableItem);
  16. }
To copy to clipboard, switch view to plain text mode 

What am I doing wrong?