Qt学习之路---学生成绩管理系统

本文详述了使用Qt创建一个学生信息管理应用的过程,包括显示、新增、删除、查询和排序学生信息的功能。主要涉及QMainWindow、QTableView、QTableWidgetItem等组件,通过实例代码解析实现各功能的方法。
摘要由CSDN通过智能技术生成

使用QTableWidget展示学生信息

整体架构

我们的目标是创建一个能够执行以下操作的应用程序:

  1. 显示学生信息表格: 在应用程序启动时,我们将学生信息从文件中读取并在QTableWidget中显示出来。
  2. 新增学生信息: 用户可以填写表单并点击“新增”按钮,以添加新的学生信息到表格中。
  3. 删除学生信息: 用户可以勾选表格中的复选框,然后点击“删除”按钮,以从表格中删除选中的学生信息。
  4. 查询学生信息: 用户可以按照姓名查询学生信息,并在表格中显示匹配的结果。
  5. 排序学生信息: 用户可以点击“升序”和“降序”按钮,对表格中的学生信息按照特定列进行升序和降序排列。
主要类和组件

在这个示例中,我们主要使用了以下Qt类和组件:

  • QDialog: 应用程序的主窗口基类。
  • QTableWidget: 用于展示和编辑表格数据。
  • QCheckBox: 用于显示和处理复选框。
  • QMessageBox: 用于显示消息框。
  • std::list: 存储学生对象的列表。
主要功能

以下是这个示例应用程序的主要功能:

  1. 初始化学生信息: 当应用程序启动时,我们从文件中读取学生信息,并将其显示在QTableWidget中。
  2. 新增学生信息: 用户可以通过填写学生信息并点击“新增”按钮,将新的学生信息添加到表格中。
  3. 删除学生信息: 用户可以勾选表格中的复选框,然后点击“删除”按钮,从表格中删除选中的学生信息。
  4. 查询学生信息: 用户可以通过输入姓名来查询学生信息,匹配的学生信息将显示在表格中。
  5. 排序学生信息: 用户可以点击“升序”和“降序”按钮,对表格中的学生信息按照特定列进行升序和降序排列。
代码解释

以下是一些关键的代码片段和解释,帮助你理解如何实现这些功能:

  • list_init 函数用于初始化学生信息列表,从文件中读取数据并存储到 student_list 中。
  • table_init 函数用于将学生信息显示在 QTableWidget 中,同时创建复选框并连接状态改变信号。
  • on_pushButton_instert_clicked 槽函数处理新增学生按钮的点击事件,将学生信息添加到列表和表格,并更新文件。
  • on_pushButton_delect_clicked 槽函数处理删除学生按钮的点击事件,删除选中的学生信息并更新表格和文件。
  • on_pushButton_select_one_clicked 槽函数处理按姓名查询按钮的点击事件,将匹配的学生信息显示在表格中。
  • on_pushButton_select_all_clicked 槽函数处理查询全部按钮的点击事件,显示所有学生信息。
  • on_pushButton_ascend_clicked 槽函数处理升序排列按钮的点击事件,对学生信息按照某列升序排列并更新表格。
  • on_pushButton_descend_clicked 槽函数处理降序排列按钮的点击事件,对学生信息按照某列降序排列并更新表格。
  • table_chang 槽函数处理表格数据变化的信号,将编辑后的数据更新到 student_list 和文件。

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QDialog>
#include <QFile>
#include <QString>
#include "student.h"
#include <list>
#include <QTableWidget>

namespace Ui {
class MainWindow;
}

class MainWindow : public QDialog
{
    Q_OBJECT

public:
    explicit MainWindow(QString file_name, QWidget *parent = nullptr );
    ~MainWindow();

private slots:
    void on_pushButton_instert_clicked();

    void on_pushButton_descend_clicked();

    void on_pushButton_delect_clicked();

    void on_pushButton_select_one_clicked();

    void on_pushButton_
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值