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.
nmWATI/Include/mTool/mToolPvt/iWxPvtSubHeader.h

113 lines
2.6 KiB
C

#pragma once
#include "mAlgDefines.h"
#include "iWxPvtBase.h"
#include "mToolPvt_global.h"
namespace Ui {
class iWxPvtSubHeader;
}
class M_TOOL_PVT_EXPORT iWxPvtSubHeader : public iWxPvtBase
{
Q_OBJECT
public:
explicit iWxPvtSubHeader(QWidget *parent = 0);
~iWxPvtSubHeader();
// 根据当前是解析还是数值进行简单调整该函数在initUI之前
void adjustUI(bool bAnalMode);
// 初始化
virtual void initUI();
// 返回数据
double getTempBase();
double getPressureBase();
double getGorBase();
VecDouble* getPtrOfValueP();
VecDouble* getPtrOfValueT();
// 文件标识
virtual QString getFilePvtTag();
private:
// 默认值填入
void initDefault();
// signal
void buildSignals();
// 填入最大最小的单位
void fillUnitOfMaxMin();
// 刷新
void refresh();
// 计算压力温度点
void calPressAndTemp();
bool _calIncrement(double& f,
double fMax, double fMin);
bool _calVecOfIncrements(VecDouble& vec,
double fIncrement,
double fMax, double fMin);
protected:
virtual void paintEvent(QPaintEvent*);
virtual void resizeEvent(QResizeEvent*);
virtual bool eventFilter(QObject* object, QEvent* event);
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
private slots:
void slotChangeIncrements();
void slotMaxMinChanged(QString);
void slotMaxMinStrChanged();
void slotCbxUnitMaxMinChanged(const QString s);
virtual void slotParaValueChanged();
void slotFluidMainOptionClicked(int nIndex);
void on_cbxOil_clicked();
void on_cbxGas_clicked();
void on_cbxWater_clicked();
void on_cbxCondense_clicked();
private:
void onFluidTypeChanged(PvtFluidClass opMain, PvtFluidType opSub);
signals:
/// @brief 当Header涉及到的一些参数数据更改时触发比如压力数据范围改变
void sigHeaderOptionDataChanged();
/// @brief 当Heade中流体选项发生改变触发
/// @param nMain 大类,常规/特殊/状态方程
/// @param vecSubs 子类,油/气/水/凝析
void sigHeaderOptionFluidChanged(int nMain, VecInt& vecSubs);
private:
Ui::iWxPvtSubHeader *ui;
// 压力数据数组
VecDouble m_vecValueP;
// 温度数据数组,温度是后台计算的。
VecDouble m_vecValueT;
double m_fMaxT; //温度范围固定20-400℃ 摄氏度
double m_fMinT;
QString m_sLastUnitMaxMin;
PvtFluidClass m_oPfc;
};