logplus/logPlus/forminfo.h

270 lines
9.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef FORMINFO_H
#define FORMINFO_H
#include <QWidget>
#include <QPainter>
#include <QPaintEvent>
//
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include "DrawTvd.h"
#include "qcustomplot.h"
#pragma execution_character_set("utf-8")
namespace Ui {
class FormInfo;
}
class FormInfo : public QWidget
{
Q_OBJECT
public:
explicit FormInfo(QWidget *parent = nullptr, QString strSlfName="", QString strWellName="", QString strTrackName="", QString strLineName="", QColor lineColor=QColor(255,0,0));
~FormInfo();
void initProperty(QJsonObject obj);
private:
Ui::FormInfo *ui;
protected:
void paintEvent(QPaintEvent *event);
public slots:
void dragEnterEvent(QDragEnterEvent* event);
void dragMoveEvent(QDragMoveEvent* event);
void dropEvent(QDropEvent* event);
//属性
//左刻度
void s_ChangeLeftScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newLeftScale);
//右刻度
void s_ChangeRightScale(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double newRightScale);
//刻度类型
void s_ChangeScaleType(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QString strScaleType);
//线颜色
void s_ChangeLineColor(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QColor lineColor);
//线宽
void s_ChangeLineWidth(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, double width);
//线型
void s_ChangeLineStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, Qt::PenStyle lineStyle);
//绘制方式
//曲线
void s_ChangeDrawLine(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawLine);
//杆状
void s_ChangeDrawGan(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawGan);
//点状
void s_ChangeDrawPoint(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawPoint);
//绘制对称曲线
void s_ChangeDrawSymmetry(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, bool bDrawSymmetry);
//数据点 符号类型
void s_ChangePointStyle(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, QCPScatterStyle::ScatterShape pointStyle);
//斜井三图一表
void s_ChangeTvdProperty(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
QObject *pTvd);
//岩性填充-不填充
void s_ClearFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName);
//岩性填充-填充
void s_ChangeFillMode(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName,
QString newFillType, QString newTargetLine, QColor newColor, QString newLithosImage, QString newHeadFill,
float vMin, float vMax, QString strOtherScaleType, QColor frontColor, QColor backColor, QString newFillMode, bool bFillNow);
//修改曲线选择状态 iSelect=0未知1标准曲线2主曲线3从曲线
void s_ChangeLineStatus(QString strUuid, QString strSlfName, QString strWellName, QString strTrackName, QString strLineName, int iSelect, bool bMerge);
public:
QString m_strUuid;
QString m_strTrackUuid="";
QString m_strSlfName;
QString m_strWellName;
QString m_strTrackName;
QString m_strLineName;
QString m_strAliasName;//显示名称
QString m_strUnit = "(米)";//单位
QFont m_strUnitFont = QFont("微软雅黑", 10);//单位字体
// 头部高度
int m_headHeight = 100;
bool m_bVerticaDrawing = false; // 垂向绘制
int m_nRotationAngle = 0; // 旋转角度
int m_iSelect=0; //iSelect=0未知1标准曲线2主曲线3从曲线
bool m_bMerge = false;//是拼接状态,否代表校深状态。为了切换时做数据清理
QString m_strType;//类型curve, wave
//
double m_dWidth;//线宽
QColor m_lineColor;//颜色(曲线颜色,固井文字颜色)
Qt::PenStyle m_lineStyle;//线形
//X坐标
float m_vmin;//左刻度
float m_vmax;//右刻度
QString m_strScaleType;//刻度类型(线性,对数)
qint8 m_nLeftCross = 0; // 左跨道个数
qint8 m_nRightCross = 0; // 右跨道个数
QFont m_curveNameFont; // 曲线名称字体
QFont m_curveUnitFont; // 曲线单位字体
QFont m_curveScaleFont; // 曲线刻度字体
//绘制方式
bool m_bDrawLine = true; // 曲线
bool m_bDrawGan = false; // 杆状
bool m_bDrawPoint = false; // 点状
bool m_bDrawSymmetry = false; // 绘制对称曲线
QCPScatterStyle::ScatterShape m_pointStyle=QCPScatterStyle::ssCircle;//数据点,符号类型,圆,三角等
//岩性填充
QString m_newHeadFill;//头部图例
QString m_newTargetLine;//目标曲线
QString m_newFillType;//填充类型
QString m_newFillMode;//填充模式
QColor m_newColor;//填充颜色
QString m_newLithosImage = "";//岩性图片
float m_new_vMin;//其他目标曲线
float m_new_vMax;//其他目标曲线
QString m_strOtherScaleType;//其他目标曲线,刻度类型(线性,对数)
QColor m_frontColor;//岩性前景色
QColor m_backColor;//岩性背景色
int m_nJg;
int m_nDrawType; // 绘图类型
int m_nFillType; // 填充类型
bool m_bDrawDepth = false; // 绘制波深度
bool m_bDrawBase = false; // 绘制波基线
bool m_bOddEven = false; // 奇偶配色
QString m_strAmp; // 幅度刻度
float m_fMaxAmp; // 最大振幅
bool m_bShowScale; // 显示刻度
float m_fWaveBase = 0.0f; // 波列基值
int m_nWaveJg = 100; // 波形间隔
float m_fWaveHei = 1; // 波形高度
int m_nColorNum = 256; // 调色板参数设置-变密度颜色级数
int m_nSchemeIndex = 1; // 调色板参数设置-色板
// 解释结论
int m_nConclusionProportion = 50; // 结论占比%
int m_nShowPos = 0; // 显示位置(cm)
bool m_bShowLayerNo = true; // 显示层号
QFont m_layerFont; // 层号字体
float m_fLayerRotate = 0.0f; // 层号旋转
//录井剖面
bool m_bLithColor = true; // 岩性配色显示
bool m_bLithOne = true; // 单岩性显示
bool m_bShowOil = true; // 显示含油性
bool m_bCenterOil = false; // 含油性居中
bool m_bShowColor = false; // 显示颜色
bool m_bShowColorNum = false; // 绘制颜色号
double m_dOilZhan = 8; //含油占比
// 岩心照片
// 例区高度
int m_yxzpExampleAreaHeight;
// 标注字体
QFont m_yxzpLabelFont;
// 标注旋转
int m_yxzpLabelRotation;
// 两端绘制
bool m_yxzpTwoEndDrawing;
// 绘制颜色
bool m_yxzpDrawColor;
//气测/FMT/射孔/文本
QStringList m_FieldNameList;
//沉积相
bool m_bDrawFac = true; // 绘制相
bool m_bDrawPhase = true; // 绘制亚相
bool m_bDrawMFacName = true; // 微相名称
//套管组件
bool m_bDrawStruct_Tubing = true; //绘制结构
bool m_bDrawTubing_Tubing = true; //绘制管柱
bool m_bDrawTools_Tubing = true; //绘制工具
bool m_bDrawSPTool_Tubing = true; //标注工具
bool m_bDrawCCL_Tubing = false; //绘制接箍
float m_Oguan_Tubing = 63.5; //油管外径
float m_inD_Tubing = 121.36; //套管内径
float m_OutD_Tubing = 139.7; //套管外径
//斜井三图一表(井斜数据表参数)
CDrawTvd *m_pTvd;
// 深度
QColor m_sdRulerColor; // 标尺颜色
double m_sdInterval = 20; // 间隔
QFont m_sdLabelFont = QFont("微软雅黑", 10); // 标注字体
double m_sdRotationAngle = 0.0; // 旋转(°)
bool m_sdDrawStartDepth; // 绘制起点深度
bool m_sdDrawEndDepth; // 绘制终点深度
bool m_sdMeasuredDepth = true; // 斜深
bool m_sdElevationVerticalDepth = false; // 海拔垂深
bool m_sdVerticalDepth = false; // 垂深
int m_sdMeasuredDepthPosition = 0; // 斜深位置
int m_sdVerticalDepthPosition = 0; // 垂深位置
int m_sdElevationVerticalDepthPosition; // 海拔垂深位置
int m_sdMajorTickLineLength = 3; // 主刻度线长度
int m_sdMajorTickLineWidth = 1; // 主刻度线宽度
int m_sdMinorTickLineLength = 1; // 次刻度线长度
int m_sdMinorTickLineWidth = 1; // 次刻度线宽度
public:
void setLineWidth(double dWidth);
double getLineWidth();
void setLineStyle(Qt::PenStyle lineStyle);
Qt::PenStyle getLineStyle();
void setVMax(float vmax);
float getVMax();
void setVMin(float vmin);
float getVMin();
void setFrontColor(QColor frontColor);
QColor getFrontColor();
void setBackColor(QColor backColor);
QColor getBackColor();
bool setInfoProperty(QString strProName, QVariant val);
int getFillTypeIndex();
QJsonObject makeJson();
void makeTvdJson(QJsonObject& rootObj);
//右键菜单响应函数
virtual void contextMenuEvent(QContextMenuEvent *event);
private:
QPoint startPosition;
public slots:
//曲线数据查看
void onShowCurve();
//删除曲线
void onDeleteCurv();
//表格查看
void onShowTable();
//删除表格
void onDeleteTable();
};
#endif // FORMINFO_H