对单个存储数据的单元格,先拿取整个文本信息,在进行切割,再拿
取切割后的第xxx块的数据,再转换成数字double格式
themodel->item(j,i)->text().split(":").at(1).toDouble();
void MainWindow::sureyData()
{
int cnt50,cnt60,cnt70,cnt80,cnt90;
qreal sumV,minV,maxV;
qreal val;
QTreeWidgetItem *item;
int i,j;
for(i=colNoMath;i<=colNoAverage;i++)
{
sumV=0;
cnt50=0;
cnt60=0;
cnt70=0;
cnt80=0;
cnt90=0;
for(j=0;j<themodel->rowCount();j++)
{
val=themodel->item(j,i)->text().split(":").at(1).toDouble();
qDebug() << "val == "<< themodel->item(j,i)->text().split(":").at(1)<< endl;
if (j==0)
{
minV=val;
maxV=val;
}
if (val<minV)
minV=val;
if (val>maxV)
maxV=val;
sumV+=val;
if (val<60)
cnt50++;
else if ((val>=60) && (val<70))
cnt60++;
else if ((val>=70) && (val<80))
cnt70++;
else if ((val>=80) && (val<90))
cnt80++;
else
cnt90++;
}
item=ui->treeWidget->topLevelItem(0);
item->setText(i,QString::number(cnt50));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(1);
item->setText(i,QString::number(cnt60));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(2);
item->setText(i,QString::number(cnt70));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(3);
item->setText(i,QString::number(cnt80));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(4);
item->setText(i,QString::number(cnt90));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(5);
item->setText(i,QString::number(sumV/themodel->rowCount()));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(6);
item->setText(i,QString::number(maxV));
item->setTextAlignment(i,Qt::AlignHCenter);
item=ui->treeWidget->topLevelItem(7);
item->setText(i,QString::number(minV));
item->setTextAlignment(i,Qt::AlignHCenter);
}
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
qsrand(QTime::currentTime().second());
themodel = new QStandardItemModel(iniDataRowCount,fixedColumnCount,this);
initData();
ui->tableView->setModel(themodel);
}
示意图:
最初的数据拿取,直接theModel->item(j,i)->text().toDouble() 是无法识别的 第二次,themodel->item(j,i)->text().split(":"); 单纯的切割只是把其中的数据翻开了而已,tree Widget控件依然无法识别 第三次,去切割后的第二部分数据,识别成功
themodel->item(j,i)->text().split(":").at(1).toDouble();
|