#ifndef DATATABLEWIDGET_H #define DATATABLEWIDGET_H #include #include "SchemePlanManager.h" #include class DataTableComboDelegate; class CMind; class ProjectInfo; class PushButton; class QLabel; class QTabWidget; class QVBoxLayout; class QHBoxLayout; /** * @brief The DataTableWidget class * 数据表, 整体上是包含多个 QTableView 的 QTabWidget * 显示以下数据: * 能力重要度评估, 技术措施重要度, 方案优选评估: 权重分析数据和评估数据 * 综合效能评估: 权重分析数据 * 综合效能评估-物元分析法: 评估数据 */ class DataTableWidget : public QWidget { Q_OBJECT public: explicit DataTableWidget(SchemePlanManager::SchemeProcessInfo process, QWidget *parent = nullptr); SchemePlanManager::SchemeProcessInfo process() const; void initWidget(); void initLayout(); void connectSignalsAndSlots(); void setupTabWidget(); int currentPage() const; void setCurrentPage(int p); void updateCurrentTable(); QStringList hNodes() const; QStringList vNodes() const; QVector values() const; CMind *mind1() const; CMind *mind2() const; void setData(QList data); signals: public slots: void slotPrevious(); void slotNext(); void slotTabCurrentChanged(int c); private: SchemePlanManager::SchemeProcessInfo m_process; int m_currentPage = 0; CMind *m_mind1 = nullptr; CMind *m_mind2 = nullptr; QTabWidget *m_dataTab = nullptr; QLabel *m_pageLab = nullptr; // 共4页, 当前第2页 PushButton *m_previous = nullptr; // 上一级指标 PushButton *m_next = nullptr; // 下一级指标 QVBoxLayout *m_layout = nullptr; QHBoxLayout *m_pageLayout = nullptr; bool m_isSettingTable = false; DataTableComboDelegate *m_comboDelegate = nullptr; QList m_data; QStringList m_hNodes; QStringList m_vNodes; QVector m_values; }; #endif // DATATABLEWIDGET_H