Reputation: 2521
I have the following code. In the first method I create a table within the tableview. In the second method I try to get a value of a single cell from the tableview model (table). My try just doesn't work. Could you help me, please?
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);
}
Upvotes: 0
Views: 807
Reputation: 5590
Try:
QStandardItemModel* model = qobject_cast<QStandardItemModel*>(ui->tableView->model());
QString text = model->item(0,0)->text();
accessibleText()
is for text set with setAccessibleText()
Upvotes: 1