目录
一、需求:
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);
}
三、运行界面
四、全部源码:
私聊即可!!!