QT小程序:1,输入人员姓名和分数。2,对这些人员根据分数进行排序。3,对这些人员可以进行后续的增减分数,并刷新排序名次

1 篇文章 0 订阅

目录

一、需求:

二、关键源码:

三、运行界面

 四、全部源码:

一、需求:

QT小程序:1,输入人员姓名和分数。2,对这些人员根据分数进行排序。3,对这些人员可以进行后续的增减分数,并刷新排序名次

二、关键源码:

.cpp源文件

#include "widget.h"
#include "ui_widget.h"

void Widget::updateTableWidget(const vector<PersonInfo> &vec)
{
    ui->tableWidget->setRowCount(vec.size());
    for(int i=0; i<vec.size(); ++i)
    {
        ui->tableWidget->setItem(i,0,new QTableWidgetItem(vec.at(i).m_name));
        ui->tableWidget->setItem(i,1,new QTableWidgetItem(QString::number(vec.at(i).m_mark,'f',2)));
    }
}

//录入
void Widget::on_pushButton_Add_clicked()
{
    m_personInfo.m_name = ui->lineEdit_Name->text();
    m_personInfo.m_mark = ui->lineEdit_Mark->text().toDouble();

    m_vecPerson.push_back(m_personInfo);
    updateTableWidget(m_vecPerson);

    ui->lineEdit_Name->clear();
    ui->lineEdit_Mark->clear();
}


//排序
void Widget::on_pushButton_Sort_clicked()
{
    sort(m_vecPerson.begin(), m_vecPerson.end(), compair);
    updateTableWidget(m_vecPerson);
}

//更新
void Widget::on_pushButton_Update_clicked()
{
    for (int i=0; i<m_vecPerson.size(); i++)
    {
        if(m_vecPerson.at(i).m_name == ui->lineEdit_Name->text())
        {
            m_vecPerson.at(i).m_mark = ui->lineEdit_Mark->text().toDouble();
            break;
        }
    }
    updateTableWidget(m_vecPerson);
}

//展示数据
void Widget::showData(int row, int colum)
{
    Q_UNUSED(colum)
    ui->lineEdit_Name->setText(ui->tableWidget->item(row,0)->text());
    ui->lineEdit_Mark->setText(ui->tableWidget->item(row,1)->text());
    ui->lineEdit_Name->setEnabled(false);
}


三、运行界面

 

 四、全部源码:

私聊即可!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来份煎蛋吧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值