#ifndef NMWXRCWELL_H #define NMWXRCWELL_H #include class QListWidget; class QLineEdit; class QTableWidget; class QTableWidgetItem; class QLabel; class nmWxRCWell : public QWidget { Q_OBJECT public: explicit nmWxRCWell(QVector wellNames, QVector wellsRadius, QWidget *parent = nullptr); // 点击保存 bool saveData(QString filePath); signals: private slots: // 选择井 void on_selectWell(int index); // 修改表皮系数 void on_wellSkinChanged(QString); // 修改井储系数 void on_wellReservoirFactorChanged(QString); // 修改井的流量段数 void on_welltTimeChanged(QString); // 监听井的流量段变化 void on_timeFlowChanged(QTableWidgetItem *item); private: // 根据井的数量,先初始化默认值 void initDefaultValue(); // 初始化UI void initUI(); QListWidget* initListWidget(); QWidget* initWellDetailWidget(); // 展示井的详情 void showWellDetail(int index); // 根据设置的流量段数,初始化默认流量段数据 void initWellTimeFlow(int wellIndex, int timeNum); // 更新井的流量段 void updateWellTimeFlow(int iWellIndex); // 打印所有井的数据 void printWells(); private: // 井的数量 QVector m_vWellNames; // 井的半径 QVector m_vWellsRadius; // 井的表皮系数 QVector m_vWellsSkin; // 井储系数 QVector m_vWellsReservoirFactor; // 井的流量段,比如:井的流量段时2,则有2个持续时间和2个流量 QVector m_vWellsTimeNum; // 井的流量持续时间组 QVector> m_vWellTimes; // 井的流量组 QVector> m_vWellFlows; // 创建label QLabel* createLabel(QString); // 井列表 QListWidget* m_pWellListWidget; // 井半径 QLineEdit* m_pWellRadiusEdit; // 井的表皮系数 QLineEdit* m_pWellSkinEdit ; // 井储系数 QLineEdit* m_pWellReservoirFactorEdit; // 井的流量段,比如:井的流量段时2,则有2个持续时间和2个流量 QLineEdit* m_pWellTimeEdit; // 设置流量段数据的table QTableWidget* m_pTimeTableWidget; }; #endif // NMWXRCWELL_H