|
|
#pragma once
|
|
|
|
|
|
#include "iDlgBase.h"
|
|
|
#include "mGuiJob_global.h"
|
|
|
#include "iResultInfo.h"
|
|
|
|
|
|
class iParaItemCtrl;
|
|
|
class ZxDataWell;
|
|
|
//class iResultInfo;
|
|
|
|
|
|
class M_GUI_JOB_EXPORT iWxBase : public iDlgBase
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
explicit iWxBase(QWidget *parent = 0);
|
|
|
~iWxBase();
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 初始化
|
|
|
virtual void initUI();
|
|
|
virtual void setDataWell(ZxDataWell* p);
|
|
|
|
|
|
virtual QVector<iParaItemCtrl*>* getVecParaCtrls();
|
|
|
|
|
|
// 组织结果数据,注:vec不进行clear,由调用方自行clear
|
|
|
virtual bool organizeResults(QVector<iResultInfo>& vec, QString sType);
|
|
|
virtual bool organizeResultsEx(QStringList& listTags,
|
|
|
QStringList& listValues,
|
|
|
QString sType,
|
|
|
bool bClear = false);
|
|
|
// 与序列化关联
|
|
|
virtual bool saveAsByteArr(QByteArray& v);
|
|
|
virtual bool loadFromByteArr(QByteArray& v);
|
|
|
|
|
|
public:
|
|
|
|
|
|
// 建立某参数的Layout,考虑单位控件
|
|
|
virtual iParaItemCtrl* createParaCtrl(QString sPara,
|
|
|
bool bUnitEditable = true,
|
|
|
bool bShowScale = false,
|
|
|
bool bStrench = true,
|
|
|
VecInt* pVecStrenchRatios = NULL,
|
|
|
int nSpacing = 4,
|
|
|
int nMarginL = 20,
|
|
|
int nMarginR = 20);
|
|
|
|
|
|
// 在pCtrl InitUI之前允许部分调整,如参数跟着模型走的调整
|
|
|
//virtual void adjustParaInfos(iParameter* pParameter);
|
|
|
|
|
|
// 从各个Wx(m_vecWxDatas)中遍历查找
|
|
|
virtual bool setParaValue(QString sPara, double d);
|
|
|
virtual bool getParaValue(QString sPara, double& d);
|
|
|
// 返回所有参数,Key为英文ID
|
|
|
virtual bool getAllParaValues(QMap<QString, double>& map,
|
|
|
bool bOnlyFitted = false,
|
|
|
bool bClearMap = true);
|
|
|
virtual bool getAllParaValuesUnit(QMap<QString, QString>& map,
|
|
|
bool bOnlyFitted = false,
|
|
|
bool bClearMap = true);
|
|
|
|
|
|
signals:
|
|
|
// 当参数改变时触发,通知后续窗体
|
|
|
void sigParasChanged(QMap<QString, QVariant>& map);
|
|
|
|
|
|
// 返回Jog标识
|
|
|
void sigGetJogTag(QString& s);
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
virtual void slotGetJobTag(QString& s) { Q_UNUSED(s); }
|
|
|
// 当前面窗体参数改变时,本窗体响应
|
|
|
virtual void slotParasObtained(QMap<QString, QVariant>& map);
|
|
|
|
|
|
// 响应ParaCtrl数据的改变
|
|
|
virtual void slotParaCtrlValueChanged(QString sPara, QVariant o);
|
|
|
|
|
|
protected:
|
|
|
virtual void paintEvent(QPaintEvent *);
|
|
|
|
|
|
// 绘制Log
|
|
|
virtual void drawLogInfo(QPainter* painter);
|
|
|
|
|
|
// 从当前井获取该参数的数值
|
|
|
bool getValueFromCurWell(QString sPara, QVariant& o);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 对于单位类的控件进行管理
|
|
|
QVector<iParaItemCtrl*> m_vecParaCtrls;
|
|
|
|
|
|
// 当前井
|
|
|
ZxDataWell* m_pDataWell;
|
|
|
|
|
|
// 默认的存储路径,外部传递过来
|
|
|
//QString m_sJobTag;
|
|
|
};
|