226_QT_QStandardItem、QStandardItemModel,采用类似冒泡的方式,为表格中的 每个学生,设置好各科分数,并得出平均分(table view控件,方便直接创建表格)

65 篇文章 6 订阅

代码

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控件,方便直接创建表格

在这里插入图片描述
在这里插入图片描述

延申了解

QTableView QStandardItemModel QStandardItem三者的关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扳手的海角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值