我有两个 QTableWidgets,我正在尝试将它们同步,以了解如何获取/设置数据。
我目前的代码是:
void MainWindow::on_tableWidget_2_cellChanged(int row, int column)
{
double value = ui->tableWidget_2->itemAt(row,column)->text().toDouble();
ui->tableWidget->itemAt(row,column)->setData(Qt::UserRole, value);
}
我也试过:
void MainWindow::on_tableWidget_2_cellChanged(int row, int column)
{
QString value = ui->tableWidget_2->itemAt(row,column)->text();
ui->tableWidget->itemAt(row,column)->setText(value);
}
不管怎样,从 QTableWidgetItem::text() 返回的 QString 都是一个空字符串。无论在我尝试编辑之前是否有任何文本,都会发生这种情况。
不确定它是否重要,但这就是我初始化表的方式:
QTableWidgetItem * tableItem;
for(int i = 0; i < 5; i++)
{
ui->tableWidget->insertRow(i);
ui->tableWidget_2->insertRow(i);
tableItem = new QTableWidgetItem();
ui->tableWidget->setItem(i,0,tableItem);
tableItem = new QTableWidgetItem();
ui->tableWidget->setItem(i,1,tableItem);
tableItem = new QTableWidgetItem();
ui->tableWidget_2->setItem(i,0,tableItem);
tableItem = new QTableWidgetItem();
ui->tableWidget_2->setItem(i,1,tableItem);
}
我究竟做错了什么?