|
|
#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
|