我有以下代码。在第一种方法中,我在tableview中创建了一个表。在第二种方法中,我尝试从tableview模型(表)中获取单个单元格的值。我的尝试只是不起作用。你能帮帮我吗?
void MainWindow::on_pushButton_clicked()
{
int nrows = ui->lineEdit->text().toInt();
int ncols = nrows;
ncols++;
if (ui->radioButton_2->isChecked() == 1)
{
ncols*=2;
}
QStandardItemModel* model = new QStandardItemModel( nrows, ncols, this );
if ((ui->radioButton_2)->isChecked()==1)
{
for (int r=0; r<ncols-2; r++)
{
if(r%2==0)
{
model->setHorizontalHeaderItem( r, new QStandardItem( QString("x%0.a" ).arg(r/2+1)) );
}
else
{
model->setHorizontalHeaderItem( r, new QStandardItem( QString("x%0.b" ).arg(r/2+1)) );
}
}
model->setHorizontalHeaderItem( ncols-2, new QStandardItem( QString("RHS.a" )) );
model->setHorizontalHeaderItem( ncols-1, new QStandardItem( QString("RHS.b" )) );
}
else
{
for (int r=0; r<ncols-1; r++)
{
model->setHorizontalHeaderItem( r, new QStandardItem( QString("x%0" ).arg(r+1)) );
}
model->setHorizontalHeaderItem( ncols-1, new QStandardItem( QString("RHS" ) ));
}
for( int r=0; r<nrows; r++ )
{
for( int c=0; c<ncols; c++)
{
QStandardItem *item = new QStandardItem(QString(""));
model->setItem(r, c, item);
}
}
// Set model.
ui->tableView->setModel(model);
}
void MainWindow::on_pushButton_2_clicked()
{
QString text = ui->tableView->model()->item(0,0)->accessibleText();
ui->label_2->setText(text);
}
答案 0 :(得分:1)
尝试:
QStandardItemModel* model = qobject_cast<QStandardItemModel*>(ui->tableView->model());
QString text = model->item(0,0)->text();
accessibleText()
适用于使用setAccessibleText()