You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
1.5 KiB
C++

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTreeWidget>
#include <QTableWidget>
#include <QLineEdit>
#include <QPushButton>
#include <QMap>
#include <QList>
struct Student
{
QString name;
QString gender;
int age;
QString id;
QString phone;
};
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
// 班级管理
void showTreeMenu(const QPoint &pos);
void addClass();
void deleteClass();
void renameClass();
void onClassClicked(QTreeWidgetItem *item);
// 学生管理
void addStudent();
void deleteStudent();
// void updateStudent();
// void searchStudent();
void tableItemClicked(int row, int column);
// 文件操作 与 分页
// void importData();
// void saveData();
// void refreshAll();
// void prevPage();
// void nextPage();
private:
void setupUI();
void refreshTable();
// void saveClassToFile(const QString &className);
QString currentClass() const;
private:
// 顶部菜单栏
QMenu *fileMenu;
QMenu *editMenu;
// 左侧班级树控件
QTreeWidget *tree;
// 中间学生表格控件
QTableWidget *table;
QLineEdit *nameEdit;
QLineEdit *genderEdit;
QLineEdit *ageEdit;
QLineEdit *idEdit;
QLineEdit *phoneEdit;
QPushButton *addBtn;
QPushButton *delBtn;
// 班级数据存储
QMap<QString, QList<Student>> classData;
};
#endif // MAINWINDOW_H