2015-05-17 37 views
0

我有以下代碼。在第一種方法中,我在tableview中創建一個表。在第二種方法中,我嘗試從tableview模型(表)獲取單個單元格的值。我的嘗試不起作用。請問你能幫幫我嗎?Qt,從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); 
} 

回答

1

嘗試:

QStandardItemModel* model = qobject_cast<QStandardItemModel*>(ui->tableView->model()); 
QString text = model->item(0,0)->text(); 

accessibleText()是文本與setAccessibleText()

+0

錯誤設置: '類化QAbstractItemModel' 沒有名爲 '項' 成員 QString的文本=用戶界面 - > tableView->模型() - >項(0,0) - >文本(); ^ – Makaveli