#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include 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 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; // UI 控件 QTreeWidget *tree; QTableWidget *table; QLineEdit *nameEdit, *genderEdit, *ageEdit, *idEdit, *phoneEdit; QPushButton *addBtn, *delBtn, *updateBtn, *searchBtn, *refreshBtn; QPushButton *btnPrev, *btnNext; QLabel *pageLabel; // 数据存储 QMap> classData; QList displayList; // 当前显示的(过滤后的)数据 int currentPage = 1; const int pageSize = 10; // 每页10条 }; #endif // MAINWINDOW_H