|
|
#pragma once
|
|
|
|
|
|
#include "iWxPvtBase.h"
|
|
|
//#include "mToolPvt_global.h"
|
|
|
|
|
|
class ZxTableModel;
|
|
|
class iXmlTable;
|
|
|
class iXmlField;
|
|
|
class CompSubItem;
|
|
|
class M_TOOL_PVT_EXPORT iWxPvtComposition : public iWxPvtBase
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
explicit iWxPvtComposition(bool bExt = false, QWidget *parent = 0);
|
|
|
~iWxPvtComposition();
|
|
|
|
|
|
virtual void initUI();
|
|
|
|
|
|
void setMapParas(QMap<QString, float>& map);
|
|
|
|
|
|
static float getCompSubDefault(QString sTag, int whichOne = 0);
|
|
|
|
|
|
// 文件标识
|
|
|
virtual QString getFilePvtTag();
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 从各个Wx(m_vecWxDatas)中遍历查找
|
|
|
virtual bool setParaValue(QString sPara, double d);
|
|
|
virtual bool getParaValue(QString sPara, float& f);
|
|
|
// 返回所有参数,Key为英文ID
|
|
|
virtual bool getAllParaValues(QMap<QString, double>& map,
|
|
|
bool bOnlyFitted = false,
|
|
|
bool bClearMap = true);
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
// 组分范围判断
|
|
|
void slotTextInputValueChanged(const QString &);
|
|
|
|
|
|
// 校验组分是否100
|
|
|
void slotVerifyCompo100();
|
|
|
// 归一C1
|
|
|
void slotVerifyDown();
|
|
|
//同比例缩小
|
|
|
void slotVerifyUp();
|
|
|
|
|
|
// 组分校验颜色
|
|
|
void changeMarkClr(bool bByNormalC1 = false);
|
|
|
|
|
|
// 是否满足组分100
|
|
|
bool isCompo100(float error = 0);
|
|
|
|
|
|
// 最后对结果的验证,并弹出对话框
|
|
|
// bool runFinalCheckWithTips();
|
|
|
|
|
|
void slotApply();
|
|
|
void slotClose();
|
|
|
|
|
|
signals:
|
|
|
|
|
|
void sigTcPcChanged(QMap<QString, float>& );
|
|
|
|
|
|
private:
|
|
|
|
|
|
void initUI_Sub(QGridLayout* pGridLayout, int iLayout, iXmlField *pField, int nCount); //组分
|
|
|
void initOutputUI_Sub(QVBoxLayout*& pMainLayout);//组分界面
|
|
|
void initOutputUI_Btn(QVBoxLayout*& pMainLayout);//组分界面
|
|
|
|
|
|
// 组分内容检测(仅仅是范围)
|
|
|
bool checkTextValueScale(QLineEdit* pSender = NULL);
|
|
|
// 组分综合是否100
|
|
|
bool checkTextCompo100s(float &fSum, QLineEdit* pSender = NULL);
|
|
|
// 综合调用
|
|
|
bool verifyInputOfComp(QLineEdit* pSender = NULL);
|
|
|
|
|
|
protected:
|
|
|
virtual void paintEvent(QPaintEvent *);
|
|
|
|
|
|
private:
|
|
|
|
|
|
iXmlTable* m_pXmlDefine;
|
|
|
|
|
|
// 组分相关
|
|
|
bool m_bMergeMode; //是否合并模式,组分
|
|
|
QCheckBox* m_pCbxAuto;
|
|
|
QCheckBox* m_pCbxLess100;
|
|
|
QLabel* m_pLabelClr;
|
|
|
QLineEdit* m_pSumCompo;
|
|
|
bool m_bNormalingC1;
|
|
|
float m_fSum;
|
|
|
QPushButton* m_pBtnDown;
|
|
|
QPushButton* m_pBtnUp;
|
|
|
|
|
|
QMap<QString, float> m_mapComps;
|
|
|
|
|
|
int m_nDigit;
|
|
|
|
|
|
bool m_bExtMode; //应用于组分三区拟压力的输入,比普通的要多4项
|
|
|
};
|
|
|
|
|
|
//组分 fraction 临界压力(MPa) 临界温度(℃)
|
|
|
class M_TOOL_PVT_EXPORT CompSubItem
|
|
|
{
|
|
|
public:
|
|
|
CompSubItem();
|
|
|
CompSubItem(QString s, double d1, double d2, double d3);
|
|
|
static CompSubItem* getDefaultOf(QString s);
|
|
|
|
|
|
public:
|
|
|
|
|
|
QString m_sTag;
|
|
|
float m_fFraction; //0-1之间
|
|
|
float m_fPc;
|
|
|
float m_fTc;
|
|
|
};
|