#ifndef MODELVIEWTABLE_H #define MODELVIEWTABLE_H #include <QDialog> #include <QFrame> #include <QStackedWidget> #include <QStandardItemModel> #include <QHBoxLayout> #include <QVBoxLayout> #include <QPushButton> #include <QTableView> #include "dbService/ClassSet.h" namespace Ui { class ModelViewTable; } class ModelViewTable : public QWidget { Q_OBJECT public: explicit ModelViewTable(QWidget *parent = nullptr); ~ModelViewTable(); void init(QList<NodeMatrixInfo *> &infos); void setIndexForMessaureMethods(QStringList methods) { indexForMeasureMehods = methods; } void addStackWidgetPage(int pages); int getStackedWidgetPages(QList<NodeMatrixInfo *> datas); bool IsTableEmpty(QStandardItemModel *tableModel); bool IsQStringListEqual(QStringList tabList, QStringList nextList); QMap<QString, QSet<QString>> getTabWidgetHeaderLabel(int currentStackWidgetPage); QTabWidget * createTabWidget(QMap<QString, QSet<QString>> corrElements, int currentPage); QList<NodeMatrixInfo *> getTableViewContent(QMap<int, QMap<QString, QStandardItemModel *>> pageTabAndCorrTables); void setTableWidgetContent(QList<NodeMatrixInfo *> datas, QMap<int, QMap<QString, QStandardItemModel *>> pageTabAndCorrTables); QStandardItemModel *createModel(QStringList rowHeaderList, QStringList colHeaderList); private: QWidget *m_widget; QPushButton *lastPageBtn; QPushButton *nextPageBtn; QPushButton *restoreBtn; QFrame * m_frame; QStackedWidget *m_stackWidget; QVBoxLayout *mainLayout; QVBoxLayout *frameLayout; QHBoxLayout *btnLayout; QTableView *m_tableView; private: Ui::ModelViewTable *ui; private slots: void switchToNextPage(); void switchToLastPage(); void saveResult(); private: int stackedWidgetPages; // QMap<int, QList<QTableWidget* >> pageAndCorrTables; // QList<QTableWidget* > tmpTables; QMap<int, QMap<QString, QStandardItemModel *>> pageTabAndCorrTableModels; QMap<QString, QStandardItemModel *> tabAndCorrTableModel; QList<NodeMatrixInfo *> datas; QStringList indexForMeasureMehods; }; #endif // MODELVIEWTABLE_H