一、功能设计
- 添加学生信息:
- 用户通过输入框输入学生的姓名、年龄、学号、课程以及分数。
- 点击“添加”按钮,系统会检查输入是否完整,不允许任何字段为空。
- 完整的学生信息将被添加到系统中,并显示在表格中以供查看。
2.删除学生信息:
- 用户输入需要删除的学生的姓名。
- 点击“删除”按钮,系统将查找该学生的信息。
- 如果找到,学生信息将被从系统中删除,并更新表格显示。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
- 修改学生信息:
- 用户首先需要输入学生的姓名作为搜索关键词。
- 在其他输入框中输入需要修改的新信息。
- 点击“修改”按钮后,如果找到该学生,其信息将根据输入更新。
- 表格将刷新以显示更新后的信息。
4.查询学生信息:
- 用户可以输入姓名、年龄、学号、课程或分数中的任一项作为查询条件。
- 点击“查询”按钮后,系统将显示所有匹配的学生信息。
- 查询结果将在表格中显示,不匹配的信息不会显示。
5.显示所有学生信息:
- 点击“显示”按钮,系统将展示所有已存储的学生信息。
- 无论之前进行了何种查询或操作,显示结果都包括所有学生信息。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
二、功能展示
添加信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
修改信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
查询信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
显示所有信息
删除信息
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
三、代码分析
3.1. 类和构造函数
- 类名为 MainWindow,继承自 QWidget。
- 在构造函数中,首先创建了一个名为 centralWidget 的中央部件,并设置为当前窗口的中夬部件。同时,设置了窗口的标题为 “学生信息管理系统”。
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.2. 控件初始化
- 构造函数中初始化了五个输入框(
QLineEdit
)用于输入姓名、年龄、学号、课程、分数。 - 初始化了五个按钮(
QPushButton
)用于实现添加、删除、修改、查询和显示学生信息的功能。 - 初始化了一个表格控件(
QTableWidget
),用于显示学生信息,表头包括姓名、年龄、学号、课程和分数。
QPushButton* addButton = nullptr; QPushButton* deleteButton = nullptr; QPushButton* modifyButton = nullptr; QPushButton* searchButton = nullptr; QPushButton* showButton = nullptr; QLineEdit* nameEdit = nullptr; QLineEdit* ageEdit = nullptr; QLineEdit* idEdit = nullptr; QLineEdit* courseEdit = nullptr; QLineEdit* scoreEdit = nullptr;
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.3. 布局设置
- 使用
QHBoxLayout
、QVBoxLayout
、QFormLayout
和QGridLayout
来组织控件的布局。 - 使用
QFormLayout
布局来管理输入框,并通过addRow
方法添加标签和对应的输入框。 - 使用
QGridLayout
布局来管理按钮。
- 最后将表格控件和其他布局组合到一个水平布局中,并设置给
centralWidget
。
QHBoxLayout* hLaylout = new QHBoxLayout; QVBoxLayout* vLaylout = new QVBoxLayout; QFormLayout* fLayout = new QFormLayout; QGridLayout* gLayout = new QGridLayout; fLayout->addRow("姓名:", nameEdit); fLayout->addRow("年龄:", ageEdit); fLayout->addRow("学号:", idEdit); fLayout->addRow("课程:", courseEdit); fLayout->addRow("分数:", scoreEdit); gLayout->addWidget(addButton, 0, 0); gLayout->addWidget(deleteButton, 0, 1); gLayout->addWidget(modifyButton, 1, 0); gLayout->addWidget(searchButton, 1, 1); gLayout->addWidget(showButton, 2, 0, 1, 2); vLaylout->addLayout(fLayout); vLaylout->addLayout(gLayout); hLaylout->addLayout(vLaylout); hLaylout->addWidget(tableWidget);
3.4. 信号与槽的连接
- 在
SendSignal2Slot
方法中,将按钮的点击事件连接到对应的槽函数。这些槽函数用于处理添加、删除、修改、查询、显示全部信息的功能。
void MainWindow::SendSignal2Slot() { connect(addButton, &QPushButton::clicked, this, &MainWindow::addMessage); connect(searchButton, &QPushButton::clicked, this, &MainWindow::searchMessage); connect(modifyButton, &QPushButton::clicked, this, &MainWindow::modifyMessage); connect(deleteButton, &QPushButton::clicked, this, &MainWindow::deleteMessage); connect(showButton, &QPushButton::clicked, this, &MainWindow::showAllMessage); }
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈
3.5. 功能实现的方法
- 添加信息 (
addMessage
):从输入框中获取数据,检查数据是否为空,然后创建一个学生信息对象并添加到列表(向量)中。最后将信息添加到表格中显示。、、 - 查询信息 (searchList):从输入框中获取数据,遍历学生信息列表,匹配数据并更新表格显示。
- 修改信息 (
modifyMessage
):从输入框中获取数据,遍历学生信息列表,匹配姓名后更新对应的其他信息,然后刷新显示。 - 删除信息 (
deleteMessage
):从输入框中获取名字,遍历列表,匹配名字后从列表中删除对应的信息,然后刷新显示。 - 显示所有信息 (
showAllMessage
):清空表格,并重新遍历学生信息列表,将所有信息添加到表格中显示。
voi
👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “界面学生管理系统” 获取。👈👈👈