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.
nmWTAI-Platform/Include/nmNum/nmSubWxs/nmWxRCWell.h

81 lines
2.2 KiB
C

#ifndef NMWXRCWELL_H
#define NMWXRCWELL_H
#include <QWidget>
class QListWidget;
class QLineEdit;
class QTableWidget;
class QTableWidgetItem;
class QLabel;
class nmWxRCWell : public QWidget {
Q_OBJECT
public:
explicit nmWxRCWell(QVector<QString> wellNames, QVector<double> 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<QString> m_vWellNames;
// 井的半径
QVector<double> m_vWellsRadius;
// 井的表皮系数
QVector<double> m_vWellsSkin;
// 井储系数
QVector<double> m_vWellsReservoirFactor;
// 井的流量段比如井的流量段时2则有2个持续时间和2个流量
QVector<int> m_vWellsTimeNum;
// 井的流量持续时间组
QVector<QVector<double >> m_vWellTimes;
// 井的流量组
QVector<QVector<double >> 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