代码
void MainWindow::initData()
{
QStringList headerlist;
headerlist<<"Name"<<"Math"<<"language "<<"English"<<"AvgScore";
themodel->setHorizontalHeaderLabels(headerlist);/*行标签*/
/*列标签,以及表格中的各类分数情况*/
for(int i = 0; i < themodel->rowCount(); i++ )
{
/*先设置每行学生的单元格数据*/
/*i不可以直接++*/
QString studName = QString::asprintf("student:%2d", i+1);
QStandardItem *aItem = new QStandardItem(studName);
aItem->setTextAlignment(Qt::AlignCenter);
themodel->setItem(i, colNoName, aItem);/*列不动,为每个学生添加成绩*/
qreal avgScore = 0;
for(int j = colNoMath; j <= colNoEnglish; j++)
{
/*行不动,列动,为每个学生设置各科分数*/
qreal score = 50.0+qrand()%50;
aItem = new QStandardItem(QString::asprintf("score:%.0f",score));
aItem->setTextAlignment(Qt::AlignCenter);
themodel->setItem(i,j, aItem);
avgScore+=score;
}
/*随机得出每个学生的数、语、英成绩后,给每个学生计算平均分*/
aItem=new QStandardItem(QString::asprintf("avgScore:%.1f",avgScore/3));
aItem->setTextAlignment(Qt::AlignCenter);
aItem->setFlags(aItem->flags()&!Qt::ItemIsEditable);
themodel->setItem(i,colNoAverage, aItem);
}
}
图示,table view控件,方便直接创建表格