Проблемы с получением и настройкой данных на QTableWidgets - PullRequest
0 голосов
/ 29 октября 2011

У меня есть два QTableWidget, и я пытаюсь синхронизировать их как упражнение, чтобы выяснить, как получить / установить данные.

Текущий код, который у меня есть:

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

Независимо от того, что QString, возвращаемое из QTableWidgetItem :: text (), является пустой строкой. Это происходит независимо от того, был ли текст до того, как я попытался его отредактировать.

Не уверен, что это важно, но вот как я инициализирую таблицу:

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

Что я делаю не так?

1 Ответ

1 голос
/ 29 октября 2011

void QTableWidgetItem::setData ( int role, const QVariant & value )

Возможно, вам стоит попробовать вот так:

ui->tableWidget->itemAt(row,column)->setData(Qt::UserRole, QVariant(value));

и верните данные, используя это:

ui->tableWidget->itemAt(row,column)->data().toReal();
...